Истекло время ожидания SMTP-соединения Amazon SES
Я пытался настроить уведомление по электронной почте для моего приложения с помощью Sendmail вместе с SES на CentOS 6.5. Согласно AWS документ, Я настроил sendmail с SES,
в 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.
любая помощь будет высоко ценится !!
4 ответов
- когда вы отправляете тестовое письмо как
sudo /usr/sbin/sendmail -f from@example.com to@example.com
, почта передается sendmail, запущенной на вашем экземпляре. - когда 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
У меня также были проблемы с таймаутом. У меня не было маршрутизации подсети vpc, поскольку thiyagu114 сказал, что это его проблема, и ни одно из предложений Клемента не помогло.
нашел это на Amazon info:
важное эластичное вычислительное облако (EC2) регулирует трафик электронной почты 25 порт по умолчанию. Чтобы избежать тайм-аутов при отправке электронной почты через Конечная точка SMTP из EC2, используйте другой порт (587 или 2587) или заполните запрос на удаление отправки электронной почты Ограничения снять дроссель.
таким образом, переключение с порта 25 на 587 исправило проблему тайм-аута для меня.
спасибо Клемент за вашу помощь.
Я понял вопрос. это было vpc subnet routing
проблема с экземпляром.
теперь он работает как шарм :-)
если вы используете 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
...
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
обратите внимание, что вы должны указать порт на всех местах, даже в транспорте.
выполнить postmap
postmap /etc/postfix/sasl_passwd /etc/postfix/transport
перезапустить postfix
service postfix restart
и это сработает. Остальные настройки вы может найти в http://docs.aws.amazon.com/ses/latest/DeveloperGuide/postfix.html