Истекло время ожидания 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.


У меня также были проблемы с таймаутом. У меня не было маршрутизации подсети 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