无法使用 nodemailer 发送 html 文本

swa*_*ram 5 javascript node.js express nodemailer

我无法使用 nodemailer 在邮件中发送 html 文本。

exports.send = function(req, res) {
console.log(req.query);
var mailOptions = {
    to: req.query.email,
    subject: req.query.sub,
    text: 'Date of Interview: ' + req.query.dateOfInterview+ 'Time of Interview: ' + req.query.timeOfInterview + '' + req.query.assignedTechnicalPerson + '' + req.query.typeOfInterview + '' + req.query.interviewLocation
}
smtpTransport.sendMail(mailOptions, function(error, response) {
    if (error) {
        console.log(error);
        res.end("error");
    } else {
        console.log("Message sent: " + response.message);
        res.end("sent");

    }
});
Run Code Online (Sandbox Code Playgroud)

};

我收到的邮件是没有任何行空间的连续文本 如何使用其中的 html 标签发送相同的文本 我也尝试保留 html 并最终收到很多错误

请告诉我正确的语法

任何帮助表示赞赏

小智 4

这是 Nodemailer 最新版本的工作代码。

    var smtpTransport = require('nodemailer-smtp-transport');
    var transporter = nodeMailer.createTransport(
        smtpTransport({
            service: 'gmail',
            auth: {
                user: <Your gmail>,
                pass: '*****'//ur password
            }
        })
    );
    transporter.sendMail({
        from: 'sender@gmail.com',
        to: "recipient@mail.id",
        subject: 'hello world!',
        //text:"one"
        html: '<html><body>Hello World....</body></html>'
    }, function(error, response) {
        if (error) {
            console.log(error);
        } else {
            console.log('Message sent');
        }
    });
Run Code Online (Sandbox Code Playgroud)

注意:要授予 smtp 访问权限,请执行以下操作:

  1. 对于 Gmail,您可能需要在 Gmail 帐户中配置“允许不太安全的应用程序” 。点击这里
  2. 您可能还需要通过“允许访问您的 Google 帐户”来解锁您的帐户才能使用 SMTP。
  3. 如果您在这种情况下使用 2FA,则必须创建 应用程序特定密码。

  • @ivosh我找不到任何关于“sendMail”函数中“html”和“text”字段要求的文档。nodeMailer 是否自动确定要发送哪种类型的电子邮件,或者它们都由最终用户邮件客户端发送和呈现? (3认同)