Nodemailer 不发送带换行符的文本

2 javascript node.js nodemailer

我正在使用Nodemailer,它是一个用于发送邮件的 NodeJS 模块。但是,它不会发送带有换行符的邮件,但我尝试打印出包含我要发送的文本的变量,并且有换行符。

我得到在文本区域中写入的文本:

在此输入图像描述

site.js:

$("#send-mail").click(function(){
    $.post("/sendMail",{fieldHeader: $('#field-header').val()}, function(data){
        window.location.href ="/";
    });
});
Run Code Online (Sandbox Code Playgroud)

server.js:

app.post('/sendMail', function(req, res) {
    mailSender.init(req.body.fieldHeader);
});
Run Code Online (Sandbox Code Playgroud)

mailSender.js

function init(fieldHeader) {
    console.log(fieldHeader);
    if(fieldHeader!=null) {
        var mailer = require("nodemailer");

        var smtpTransport = mailer.createTransport({
            host: "smtp.gmail.com",
            service: "Gmail",
            tls:{
                rejectUnauthorized: false
            },
            auth: {
                user: "...",
                pass: "..."
            }
        });

        var mail = {
            from: "...",
            to: "...",
            subject: "Send Email Using Node.js",
            text: "Node.js New world for me",
            html: fieldHeader
        }

        smtpTransport.sendMail(mail, function(error, response){
            if(error){
                console.log(error);
            }else{
                console.log("Message sent: " + response.message);
            }

            smtpTransport.close();
        });
    }
}
module.exports.init = init;
Run Code Online (Sandbox Code Playgroud)

正如我所说,我打印出包含我想要在邮件中发送的文本的变量(它是您在 开头看到的 console.log() mailSender.js),这就是结果:

在此输入图像描述

但收到的邮件,不包含任何换行符: 在此输入图像描述

我一直在考虑使用循环来替换换行符,<br>该循环将查看并检查文本中的每个字符,但我不确定这是否是一个好主意。

Pus*_*ama 5

尝试在需要换行的地方添加换行标签。<br>或者<br />

var fieldheader = `hi <br> how are you ? <br> this is testing <br>`
var mail = {
    from: "...",
    to: "...",
    subject: "Send Email Using Node.js",
    text: "Node.js New world for me",
    html: fieldHeader
}
Run Code Online (Sandbox Code Playgroud)

它会解决你的问题。