2

在我的 nodejs express 应用程序中,当新用户注册时,我使用 nodemailer 发送电子邮件,这是我的电子邮件配置,在我的 config.json 中:

 {
   "senderEmail": "email",
    "senderEmailPassword":"password",
    "smtpPort":587,
    "smtpHost":"smtp.1and1.com"
 }

和transporterOptions如下:

var transporterOptions = {
    host: config.smtpHost,
    port: config.smtpPort,
    auth: {
        user: config.senderEmail,
        pass: config.senderEmailPassword
    },
    secure:false
};

现在在我的本地(开发)环境中,它能够从 1and1 主机发送电子邮件,但问题是当我使我的应用程序上线(生产)时,它无法发送电子邮件,错误如下:错误:连接超时和堆栈跟踪如下:

{ Error: Connection timeout
at SMTPConnection._formatError (/home/*/*/*/node_modules/nodemailer/lib/smtp-connection/index.js:591:19)
at SMTPConnection._onError (/home/*/*/*/node_modules/nodemailer/lib/smtp-connection/index.js:564:20)
at Timeout._connectionTimeout.setTimeout (/home/*/*/*/node_modules/nodemailer/lib/smtp-connection/index.js:256:18)
at ontimeout (timers.js:386:11)
at tryOnTimeout (timers.js:250:5)
at Timer.listOnTimeout (timers.js:214:5) code: 'ETIMEDOUT', command: 'CONN' }

服务器配置是通过 caddy 完成的。先感谢您。

4

1 回答 1

3

GCE 不允许端口 25 上的出站连接。如果 1&1 在非标准端口上支持入站电子邮件,那么您可以使用它。上面列出的页面有使用 Sendgrid、Mailgun 和 Mailjet(为此使用非标准端口)发送电子邮件的指南。

于 2018-02-26T21:03:10.997 回答