Node.js 使用nodejs在lambda函数中发送邮件

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({

我试图通过AWS中的lambda函数使用nodeJS发送邮件。 下面是我写的代码

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函数外部的电子邮件
  • 仔细检查lambda函数中提供的SMTP服务器、SMTP端口、SES ID和SES密码

  • 我将lambda函数设置为使用SMTP发送电子邮件,无需将其VPC配置为内部SMTP服务器,因此我不需要提供id或密码。VPC配置为使用access内部服务器。