我在使用我在nodejs中开发的smtp进行nodemailer传输时遇到问题,它在本地服务器和正确发送的电子邮件中没有问题,但是当我将它们码头化并部署到AWS ECS时,API仍然返回状态200而没有任何错误但电子邮件不会发送给客户的电子邮件。我该如何克服这个问题?我也尝试了端口 25 和 465,但仍然没有向客户电子邮件发送任何内容。
const transporter = await nodemailer.createTransport({
host: 'smtp.office365.com',
port: 587,
auth: {
user: 'email@company.com.my',
pass: 'password'
},
})
const templates = new EmailTemplates()
await templates.render(template, context, async (err, html, text, subject) => {
await transporter.sendMail({
from: '"Company Name" <email@company.com.my>',
to: email,
subject: subjects,
html: html,
text: text
}).then(() => {
console.log(`Email sent to ${email}`)
}).catch((err) => {
console.log('error: ', err)
})
})
起初我虽然是 nodemailer 问题,但是当我测试运行我的本地 docker 映像时,它返回一个错误
/srv/node_modules/html-to-text/lib/whitespace-processor.js:11
.map(c => '\\u' + c.charCodeAt(0).toString(16).padStart(4, '0'))
^
TypeError: c.charCodeAt(...).toString(...).padStart is not a function
at map.c (/srv/node_modules/html-to-text/lib/whitespace-processor.js:11:52)
at Array.map (native)
at charactersToCodes (/srv/node_modules/html-to-text/lib/whitespace-processor.js:11:6)
at new WhitespaceProcessor (/srv/node_modules/html-to-text/lib/whitespace-processor.js:32:29)
at new BlockTextBuilder (/srv/node_modules/html-to-text/lib/block-text-builder.js:28:31)
at htmlToText (/srv/node_modules/html-to-text/lib/html-to-text.js:146:19)
at Object.fromString (/srv/node_modules/html-to-text/lib/html-to-text.js:289:44)
at /srv/node_modules/swig-email-templates/index.js:50:29
at FSReqWrap.cb [as oncomplete] (fs.js:260:19)
我想知道实际的错误是什么以及如何解决这个 html-to-text 错误?