gpt4 book ai didi

node.js - 无法连接到 AWS SES SMTP 终端 Node

转载 作者:行者123 更新时间:2023-12-04 22:43:06 33 4
gpt4 key购买 nike

我正在构建一个应用程序,它将使用 AWS SES 通过 SMTP 发送电子邮件。我已经正确配置了一个域,并确认我可以使用 AWS 开发工具包从该域发送电子邮件。我已创建 SMTP 凭证并确保 IAM 用户正确配置了正确的权限。我编写了一个使用 Nodemailer 发送电子邮件的测试脚本。
测试脚本在我的家庭网络上使用我的个人开发机器成功运行,但在我的家庭网络上使用我的公司客户发布的开发笔记本电脑时,该脚本将无法运行。公司笔记本电脑运行许多安全工具,包括 ZScaler。我也知道,由于 ZScaler 服务,必须将 NPM 设置为使用自签名证书(命令为 npm config set cafile {CA_FILEPATH} )。
我不知道为什么该脚本无法在公司笔记本电脑上运行,如果在确定下一步要尝试什么方面提供帮助,我将不胜感激。
这是脚本:

'use strict';

const nodemailer = require('nodemailer');

const runtest = async function() {
console.debug('Creating the SMTP transport');
const transporter = nodemailer.createTransport({
host: 'email-smtp.us-west-2.amazonaws.com',
port: 465,
secure: true,
auth: {
user: 'myusername',
pass: 'mypassword',
},
});

console.debug('Building mail options');
const mailOptions = {
from: 'me@example.com',
to: 'you@example.com',
subject: 'subject',
text: 'body',
html: '<h1>Hi</h1',
};

console.debug('Sending mail...');
const info = await transporter.sendMail(mailOptions);
console.debug(`Sent mail. Info: ${JSON.stringify(info, null, 2)}`);
console.info('Message sent!');
};
runtest().catch(console.error);
这是从公司笔记本电脑运行时的结果:
Creating the SMTP transport
Building mail options
Sending mail...
Error: read ECONNRESET
at TLSWrap.onStreamRead (internal/stream_base_commons.js:200:27) {
errno: 'ECONNRESET',
code: 'ESOCKET',
syscall: 'read',
command: 'CONN'
}
我尝试过的事情:
  • 使用 rejectUnauthorized: false 等 TLS 设置并指定 TLS 版本
  • 连接或断开企业VPN
  • 我在 this Github issue 上找到了一个引用,建议使用 openssl 测试连接。我运行了这个命令 openssl s_client -connect email-smtp.us-west-2.amazonaws.com:465 ,这就是结果(似乎还可以):
  • CONNECTED(0000021C)
    write:errno=10054
    ---
    no peer certificate available
    ---
    No client certificate CA names sent
    ---
    SSL handshake has read 0 bytes and written 336 bytes
    Verification: OK
    ---
    New, (NONE), Cipher is (NONE)
    Secure Renegotiation IS NOT supported
    Compression: NONE
    Expansion: NONE
    No ALPN negotiated
    Early data was not sent
    Verify return code: 0 (ok)
    ---

    最佳答案

    就我而言,是 Node 版本导致了这个错误。我已将我的 Node 版本升级到 v12.x 以解决此问题。

    关于node.js - 无法连接到 AWS SES SMTP 终端 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63649036/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com