发送到客户端后无法设置标题-Sendgrid

问题描述 投票:0回答:1

我有一个问题。我正在尝试对从客户端站点获取请求的后端进行编程,而服务器响应是电子邮件。我也想将数据保存在数据库中。基本上,我在客户端站点上有一个表单,我只想保存数据并通过电子邮件将数据发送给用户。奇怪的是,它正在工作,但是我也得到了以下答案:»将标头发送到客户端后,无法设置标头«

有人可以提示我为什么会这样吗?

谢谢。

const Briefing = require("../models/briefing");
const sgMail = require("@sendgrid/mail");
sgMail.setApiKey(process.env.EMAIL_API_KEY);

exports.briefing = (req, res) => {
  const {
    gender,
    age,
    income,
  } = req.body;

  let newBriefing = new Briefing({
    gender,
    age,
    income,
  });

  newBriefing.save((err, success) => {
    if (err) {
      console.log("ERROR CREATING BRIEFING", err);
      return res.status(400).json({
        error: err,
      });
    }
    res.json({
      message: "Briefing successfull created",
    });
  });

  const emailData = {
    to: process.env.EMAIL_TO,
    from: process.env.EMAIL_FROM,
    subject: `Briefing`,
    text: "Eine Aufstellung des erstellten Briefings",
    html: `
        <h1>Das Briefing</h1>
        <p>Vielen dank, dass du dir die Zeit genommen hast dieses Briefing zu erstellen.</p>
        <p>Hier vorab die Daten:</p>
        <p>${gender}</p>
        <p>${age}</p>
        <p>${income}</p>
        <p>desweiteren befindet sich im anhang eine PDF</p>
      `,
  };

  sgMail
    .send(emailData)
    .then((send) => {
      console.log("SIGNUP EMAIL SEND", send);
      return res.json({
        message: `Email has been sent to [email protected] follow the instruction to activate your account.`,
      });
    })
    .catch((err) => {
      console.log("EMAIL SENDING ERROR", err);
      console.error(err.response.body);
    });
};

node.js mongodb email mongoose sendgrid
1个回答
0
投票

我已经解决了在if语句之后发送电子邮件的过程,像这样:

const Briefing = require("../models/briefing");
const sgMail = require("@sendgrid/mail");
sgMail.setApiKey(process.env.EMAIL_API_KEY);

exports.briefing = (req, res) => {
  const {
    gender,
    age,
    income,
  });

  newBriefing.save((err, success) => {
    if (err) {
      console.log("ERROR CREATING BRIEFING", err);
      return res.status(400).json({
        error: err,
      });
    }
    const emailData = {
      to: process.env.EMAIL_TO,
      from: process.env.EMAIL_FROM,
      subject: `Briefing`,
      text: "Eine Aufstellung des erstellten Briefings",
      html: `
            <h1>Das Briefing</h1>
            <p>Vielen dank, dass du dir die Zeit genommen hast dieses Briefing zu erstellen.</p>
            <p>Hier vorab die Daten:</p>
            <p>${gender}</p>
            <p>${age}</p>
            <p>${income}</p>
            <p>desweiteren befindet sich im anhang eine PDF</p>
          `,
    };

    sgMail
      .send(emailData)
      .then((send) => {
        console.log("SIGNUP EMAIL SEND", send);
        return res.json({
          message: `Email has been sent to [email protected] follow the instruction to activate your account.`,
        });
      })
      .catch((err) => {
        console.log("EMAIL SENDING ERROR", err);
        console.error(err.response.body);
      });
  });
};

© www.soinside.com 2019 - 2024. All rights reserved.