Nodemailer 不发送带有换行符的文本
Nodemailer does not send the text with line breaks
我正在使用 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.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;
正如我所说,我打印出包含我想在邮件中发送的文本的变量(它是您在 mailSender.js
开头看到的 console.log())和这个结果是:
但是收到的邮件,不包含任何换行符:
我一直在考虑用 <br>
替换换行符,使用一个循环来查看和检查文本中的每个字符,但我不确定这是否是个好主意。
尝试在需要换行的地方添加换行标记。 <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
}
它将解决您的问题。
只需将 \n
放在需要换行的地方即可。
我正在使用 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.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;
正如我所说,我打印出包含我想在邮件中发送的文本的变量(它是您在 mailSender.js
开头看到的 console.log())和这个结果是:
但是收到的邮件,不包含任何换行符:
我一直在考虑用 <br>
替换换行符,使用一个循环来查看和检查文本中的每个字符,但我不确定这是否是个好主意。
尝试在需要换行的地方添加换行标记。 <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
}
它将解决您的问题。
只需将 \n
放在需要换行的地方即可。