【发布时间】:2019-10-16 11:30:05
【问题描述】:
我正在使用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> 替换换行符,使用循环来查看和检查文本中的每个字符,但我不确定这是否是个好主意。
【问题讨论】:
-
也许可以试试 $('#field-header').html() 而不是 .val()
-
我尝试过使用 .hml(),但显然它只能通过 .val() 获得价值。但我已经设法解决了。我在 html 属性中发送文本,但我删除了它,而是将它放在 text 属性中,它现在可以工作了。还是谢谢。
标签: javascript node.js nodemailer