到目前为止,这是我正在解决的代码function sendMail(req,res){ var transporter = nodemailer.createTransport({ host:process.env.NODEMAILER_HOST, port:process.env.NODEMAILER_PORT, auth: { user: process.env.NODEMAILER_ADDRESS, pass: process.env.NODEMAILER_PASS } }) mailOptions = { from: req.body.from, to: req.body.to, cc: req.body.cc, bcc: req.body.bcc, subject: req.body.subject, text: req.body.text, html: req.body.html, attachments: [ { filename: req.body.attachments[0].filename, path: req.body.attachments[0].path, contentType: req.body.attachments[0].contentType },{ filename: req.body.attachments[1].filename, path: req.body.attachments[1].path, contentType: req.body.attachments[1].contentType } ] } transporter.sendMail(mailOptions,function(error,info){ if(error){ console.log(error); return res.status(400).json("Failed to Send"); }else{ res.status(201).json(req.body); } });}这是我的请求正文{"from": "example1@gmail.com","to": "example2@gmail.com","cc": "example3@gmail.com","bcc": "test@example.com","subject": "Test Request 1","text": "Example Text 1","html": "<p>Some Paragraph</p>","attachments": [ { "filename": "test.doc", "path": "dirname/test.doc", "contentType": "application/doc" },{ "filename": "test-coverted.pdf", "path": "dirname/test-converted.pdf", "contentType": "application/pdf" }]}如何遍历附件而不在邮件选项中一一定义?因为如果我迭代 mailOptions 那么我需要创建单独的传输,这反过来将为不同的附件发送不同的电子邮件。
1 回答
波斯汪
TA贡献1811条经验 获得超4个赞
您在响应正文中获得了相同的 json 对象键,因此您可以直接将附件数组分配给 nodemailer mailOption 对象的附件键。请参阅下文。
function sendMail(req,res){
var transporter = nodemailer.createTransport({
host:process.env.NODEMAILER_HOST,
port:process.env.NODEMAILER_PORT,
auth: {
user: process.env.NODEMAILER_ADDRESS,
pass: process.env.NODEMAILER_PASS
}
})
mailOptions = {
from: req.body.from,
to: req.body.to,
cc: req.body.cc,
bcc: req.body.bcc,
subject: req.body.subject,
text: req.body.text,
html: req.body.html,
attachments: req.body.attachments
}
添加回答
举报
0/150
提交
取消