Ошибка 500 при попытке связаться с server.js для отправки электронной почты - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь развернуть угловой веб-сайт 7, который использует nodemailer для отправки электронных писем, но продолжает получать ошибку 500 внутренняя ошибка сервера.

Угловая сторона пучка работает нормально, но я не могу понять, как запустить сервер узлов в Интернете (я понимаю, что это может быть глупый вопрос, но простите меня, я новичок)

Это мой сервис для связи с нами

  url: string = "/send";  //THIS MIGHT BE A PROBLEM

  constructor(private http: HttpClient) {}

  sendMessage(messageContent: any) {
    return this.http.post(this.url, JSON.stringify(messageContent), {
      headers: new HttpHeaders({ "Content-Type": "application/json" }),
      responseType: "text"
    });

А это мой файл server.js

const express = require("express");
const nodemailer = require("nodemailer");
const app = express();
const port = 3000;
const bodyParser = require("body-parser");

const transporter = nodemailer.createTransport({
  host: "smtp.gmail.com",
  provider: "gmail",
  port: 465,
  secure: true,
  auth: {
    user: "an email",
    pass: "a password"
  },
  tls: {
    rejectUnauthorized: false
  }
});

app.use(bodyParser.json());

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  next();
});

app.post("/send", function(req, res) {
  let senderName = req.body.name;
  let senderEmail = req.body.email;
  let messageSubject = req.body.subject;
  let messageText = req.body.message;
  let copyToSender = req.body.contactFormCopy;

  let mailOptions = {
    to: ["anemail"],
    from: senderName,
    subject: messageSubject,
    text: messageText,
    replyTo: senderEmail
  };

  if (senderName === "") {
    res.status(400);
    res.send({
      message: "Bad request"
    });
    return;
  }

  if (senderEmail === "") {
    res.status(400);
    res.send({
      message: "Bad request"
    });
    return;
  }

  if (messageSubject === "") {
    res.status(400);
    res.send({
      message: "Bad request"
    });
    return;
  }

  if (messageText === "") {
    res.status(400);
    res.send({
      message: "Bad request"
    });
    return;
  }

  if (copyToSender) {
    mailOptions.to.push(senderEmail);
  }

  transporter.sendMail(mailOptions, function(error, response) {
    if (error) {
      console.log(error);
      res.end("error");
    } else {
      console.log("Message sent: ", response);
      res.end("sent");
    }
  });
});

app.listen(port, function() {
  console.log("Express started on port: ", port);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...