Node.js 使用nodejs在lambda函数中发送邮件
我试图通过AWS中的lambda函数使用nodeJS发送邮件。 下面是我写的代码Node.js 使用nodejs在lambda函数中发送邮件,node.js,lambda,nodemailer,Node.js,Lambda,Nodemailer,我试图通过AWS中的lambda函数使用nodeJS发送邮件。 下面是我写的代码 var nodemailer = require('nodemailer'); var smtpTransport = require('nodemailer-smtp-transport'); exports.handler = async (event, context, callback) => { var transporter = nodemailer.createTransport({
var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
exports.handler = async (event, context, callback) => {
var transporter = nodemailer.createTransport({
host: 'smtp.mydomain.com',
port:25,
secure : true
});
var text = 'Email body goes here';
var mailOptions = {
from: 'fromUserMail',
to: 'toUserMail',
subject: 'Test subject',
text: text
};
const response = await new Promise((rsv, rjt) => {
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
return rjt(error)
}
rsv('Email sent');
});
});
return {
statusCode: 280,
body: JSON.stringify({
input: response
})
}
}
我已配置VPC以访问smtp。
在运行代码时,我发现了一个错误
{
"errorType": "Error",
"errorMessage": "Connection timeout",
"trace": [
"Error: Connection timeout",
" at SMTPConnection._formatError (/var/task/node_modules/nodemailer/lib/smtp-
connection/index.js:774:19)",
" at SMTPConnection._onError (/var/task/node_modules/nodemailer/lib/smtp-
connection/index.js:760:20)",
" at Timeout.<anonymous> (/var/task/node_modules/nodemailer/lib/smtp-
connection/index.js:229:22)",
" at listOnTimeout (internal/timers.js:554:17)",
" at processTimers (internal/timers.js:497:7)"
]
}
{
“errorType”:“Error”,
“errorMessage”:“连接超时”,
“跟踪”:[
“错误:连接超时”,
“在SMTPConnection上。格式错误(/var/task/node\u modules/nodeEmailer/lib/smtp-
connection/index.js:774:19)”,
“在SMTPConnection上。_onError(/var/task/node_modules/nodemailer/lib/smtp-
连接/索引js:760:20)“,
“超时时。(/var/task/node_modules/nodeEmailer/lib/smtp-
connection/index.js:229:22)”,
“在listOnTimeout(internal/timers.js:554:17)”中,
“在processTimers(内部/timers.js:497:7)”
]
}
但我有30分钟的超时时间,这个错误是在执行1分钟后出现的,所以我想这不是超时问题。您应该首先澄清以下内容
我将lambda函数设置为使用SMTP发送电子邮件,无需将其VPC配置为内部SMTP服务器,因此我不需要提供id或密码。VPC配置为使用access内部服务器。