【发布时间】:2017-05-16 18:30:28
【问题描述】:
此 Meteor 服务器代码尝试从服务器启动时发送电子邮件。
我在阅读 AWS docs 后遵循的步骤是:
1) 验证也在 AWS webMail 上的电子邮件地址。
2) 用于增加发送限制。
3) 创建和接收 SMTP 凭证。
流星 1.4.4.2
电子邮件@1.2.1
//server/main.js
smtp = {
'username': 'from smtp credentials',
'password': 'from smtp credentials',
'host': 'email-smtp.us-east-1.amazonaws.com',
'port': '465',
'auth': true
};
process.env.MAIL_URL = 'smtp://' + encodeURIComponent(smtp.username) + ':' + encodeURIComponent(smtp.password) + '@' + encodeURIComponent(smtp.outgoingServer) + ':' + smtp.outgoingPort;
Meteor.startup(() => {
Email.send({
to: 'my-aws-verified-email@comp.com',
subject: 'sending-to-myselft',
text: 'Just checking if it is working'
});
});
错误:getaddrinfo ENOTFOUND undefined undefined:587
知道如何让它工作吗?谢谢
编辑
将process.env.MAIL_URL 值更改为:
process.env.MAIL_URL = 'smtp://' + encodeURIComponent(smtp.username) +
':' + encodeURIComponent(smtp.password) +
'@' + encodeURIComponent(smtp.host) +
':' + smtp.auth + ':' + smtp.port;
现在的错误是:
错误:从未收到问候
将端口更改为“587”会产生不同的错误:
错误:邮件命令失败:501 提供的 MAIL FROM 地址无效
telnet email-smtp.us-east-1.amazonaws.com 465
Trying 107.21.244.69...
Connected to ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com.
Escape character is '^]'.
Connection closed by foreign host.
telnet email-smtp.us-east-1.amazonaws.com 2465
Trying 54.221.247.194...
Connected to ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com.
Escape character is '^]'.
Connection closed by foreign host.
telnet email-smtp.us-east-1.amazonaws.com 25
Trying 54.243.106.227...
telnet: connect to address 54.243.106.227: Connection refused
Trying 107.21.244.69...
telnet: connect to address 107.21.244.69: Connection refused
Trying 23.21.91.54...
telnet: connect to address 23.21.91.54: Connection refused
Trying 50.19.94.229...
telnet: connect to address 50.19.94.229: Connection refused
Trying 54.235.77.145...
telnet: connect to address 54.235.77.145: Connection refused
Trying 54.243.97.84...
telnet: connect to address 54.243.97.84: Connection refused
Trying 23.23.104.248...
telnet: connect to address 23.23.104.248: Connection refused
Trying 54.221.247.194...
telnet: connect to address 54.221.247.194: Connection refused
telnet: Unable to connect to remote host
telnet email-smtp.us-east-1.amazonaws.com 587
Trying 54.221.247.194...
Connected to ses-smtp-prod-t5t357831.us-east-1.elb.amazonaws.com.
Escape character is '^]'.
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-1110753669 CalqM0Qfzgny2ooZ0wo5
421 Timeout waiting for data from client.
Connection closed by foreign host.
telnet email-smtp.us-east-1.amazonaws.com 2587
Trying 23.23.104.248...
Connected to ses-smtp-prod-337800831.us-east-1.elb.amazonaws.com.
Escape character is '^]'.
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-20753669yy 4qrIfUj4ApTwkj4ZJUNa
421 Timeout waiting for data from client.
Connection closed by foreign host.
【问题讨论】:
-
端口 25 上的测试没有证明什么。 EC2 在端口 25 上进行了一些创造性过滤。端口 465 仅是 TLS,所以客户端先说话......所以这两个都很好。端口 587(顺便说一句,这是正确的端口)上的测试也完全显示了我的预期。坚持使用 587。你能在 SMTP 事务上捕获一些调试,返回
501错误吗?这应该可以准确地告诉您您需要知道的内容......虽然,Email.send({...需要一个 from 地址,不是吗? -
通过将端口更改为 587 并按照建议添加“from”来修复。现在它可以正常工作了。谢谢
标签: email amazon-web-services meteor