I have been trying to set up an email notification for my application using Sendmail along with SES on CentOS 6.5. As per AWS document, I have configured sendmail with SES,
The maillog says,
sendmail[29711]: s2QFCjnu027924: to=<[email protected]>, 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
All mails are being added in mailq
# sendmail -v -q
Running /var/spool/mqueue/s2QFueiS001965 (sequence 1 of 21)
<[email protected]> Connecting to email-smtp.us-east-1.amazonaws.com port 25 via relay.
^C
Also, I unable to do telnet to the smtp address,
# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 23.21.252.142...
^C
But nmap shows port smtp (25) is open and listening,
# 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 output,
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 29708/sendmail
I have tried with EU region smtp email-smtp.eu-west-1.amazonaws.com
as well, getting the same result.
There is no selinux and iptables running and security group rules are fine with EC2.
Any help would be highly appreciated !!
If you are using AWS SES as relay you should have this configuration:
Edit 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
...
Edit /etc/postfix/sasl_passwd
email-smtp.${aws_region}.amazonaws.com:587 SMTP_USERNAME:SMTP_PASSWORD
Edit /etc/postfix/transport
* smtp:email-smtp.${aws_region}.amazonaws.com:587
Pay attention that you have to specify port on all places, even in transport.
execute postmap
postmap /etc/postfix/sasl_passwd /etc/postfix/transport
restart postfix
service postfix restart
And it'll work. The rest of configuration you can find at http://docs.aws.amazon.com/ses/latest/DeveloperGuide/postfix.html
I was having trouble with the timeout as well. I didn't have any vpc subnet routing as thiyagu114 said was his issue, and none of clement's suggestions helped.
Found this on the Amazon info:
Important Elastic Compute Cloud (EC2) throttles email traffic over port 25 by default. To avoid timeouts when sending email through the SMTP endpoint from EC2, use a different port (587 or 2587) or fill out a Request to Remove Email Sending Limitations to remove the throttle.
So switching from port 25 to 587 fixed the timeout issue for me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With