我一直在尝试使用Sendmail和CentOS 6.5上的SES为我的应用程序设置电子邮件通知。根据AWS document,我已使用SES配置sendmail,
maillog说,
sendmail[29711]: s2QFCjnu027924: to=<abc@edf.com>, delay=00:52:09, xdelay=00:08:00, mailer=relay, pri=210717, relay=email-smtp.us-east-1.amazonaws.com [107.20.142.169], dsn=4.0.0, stat=Deferred: Connection timed out with email-smtp.us-east-1.amazonaws.com
所有邮件都在mailq
# sendmail -v -q
Running /var/spool/mqueue/s2QFueiS001965 (sequence 1 of 21)
<abc@edf.com> Connecting to email-smtp.us-east-1.amazonaws.com port 25 via relay.
^C
另外,我无法telnet到smtp地址,
# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 23.21.252.142...
^C
但是nmap显示端口smtp(25)是打开和监听的,
# nmap -p 25 localhost
Starting Nmap 5.51 ( http://nmap.org ) at 2014-03-26 17:09 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000080s latency).
PORT STATE SERVICE
25/tcp open smtp
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
netstat输出,
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 29708/sendmail
我也尝试过欧盟地区smtp email-smtp.eu-west-1.amazonaws.com
,获得相同的结果。
没有运行selinux和iptables,安全组规则适用于EC2。
任何帮助都将受到高度赞赏!!
答案 0 :(得分:18)
我也遇到了超时问题。我没有任何vpc子网路由,因为thiyagu114说这是他的问题,并且没有任何clement的建议有帮助。
在亚马逊信息上找到了这个:
重要的弹性计算云(EC2)限制了电子邮件流量 端口25默认。通过电子邮件发送电子邮件时避免超时 来自EC2的SMTP端点,使用不同的端口(587或2587)或填写 请求删除电子邮件发送限制以删除限制。
因此,从端口25切换到587可以解决我的超时问题。
答案 1 :(得分:3)
sudo /usr/sbin/sendmail -f from@example.com to@example.com
时,邮件将被移交给您实例上运行的sendmail。 SMART_HOST
email-smtp.us-east-1.amazonaws.com
时,它无法连接到email-smtp.us-east-1.amazonaws.com
,因此电子邮件已放置在deferred queue
中稍后重试。所以问题是你的sendmail实例无法与email-smtp.us-east-1.amazonaws.com
通话。
25
的某些限制答案 2 :(得分:1)
谢谢Clement的帮助。
我弄明白了这个问题。该实例存在vpc subnet routing
问题。
现在它就像一个魅力: - )
答案 3 :(得分:0)
如果您使用AWS SES作为中继,则应具有以下配置:
编辑main.cf:
...
relayhost = email-smtp.${aws_region}.amazonaws.com:587
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes
...
编辑/ etc / postfix / sasl_passwd
email-smtp.${aws_region}.amazonaws.com:587 SMTP_USERNAME:SMTP_PASSWORD
编辑/ etc / postfix / transport
* smtp:email-smtp.${aws_region}.amazonaws.com:587
请注意,您必须在所有地方指定端口,即使在传输中也是如此。
执行postmap
postmap /etc/postfix/sasl_passwd /etc/postfix/transport
重新启动postfix
service postfix restart
它会起作用。您可以在http://docs.aws.amazon.com/ses/latest/DeveloperGuide/postfix.html
找到其余配置答案 4 :(得分:0)
如果您通过端口25从Amazon EC2实例发送到Amazon SES,但是您无法达到Amazon SES发送限制或接收超时,则可能是因为Amazon EC2对通过端口25和25发送的电子邮件强加了默认发送限制如果您尝试超过这些限制,则会限制出站连接。 解决方案- 您可以使用端口465或587连接到Amazon SES,这两个端口均未受到限制。 要么 要删除限制,请提交Amazon EC2请求以删除端口25限制(https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request)。