最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Nodemailer不发送带换行符的文本

运维笔记admin72浏览0评论

Nodemailer不发送带换行符的文本

Nodemailer不发送带换行符的文本

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

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

site.js:

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

server.js:

app.post('/sendMail', function(req, res) {
    mailSender.init(req.body.fieldHeader);
});

mailSender.js

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

        var smtpTransport = mailer.createTransport({
            host: "smtp.gmail",
            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;

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

但是收到的邮件不包含换行符:

[我一直在考虑使用循环来替换<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
}

它将为您解决问题。

发布评论

评论列表(0)

  1. 暂无评论