Я настраиваю main.cf
postfix на Linux SUSE вот так
inet_interfaces = localhost
inet_protocols = ipv4
masquerade_domains =
masquerade_exceptions = root
mydestination = $myhostname, localhost.$mydomain
myhostname = localhost
mynetworks_style = subnet
relayhost=[smtp-relay.gmail.com]:25
smtpd_delay_reject = yes
smtpd_helo_required = no
smtpd_client_restrictions =
smtpd_helo_restrictions =
smtp_sasl_auth_enable = no
smtp_sasl_security_options =
smtp_sasl_password_maps =
smtpd_sasl_auth_enable = no
smtp_use_tls = no
Я попробовал telnet smtp-relay.gmail.com 25
и это работает.
В любом случае, когда я попытался отправить электронное письмо с помощью Postfix на сервере, у меня возникла проблема.
root@localhost
(host smtp-relay.gmail.com[ipv4] refused to talk to me: 421 4.7.0 Try again later, closing connection. (EHLO)
решение1
Глядя наофициальная документация Googleпохоже на «ограничение скорости» с их стороны:
421, "4.7.0", Try again later, closing connection. This usually indicates a Denial of Service (DoS) for the SMTP relay at the HELO stage.
Сколько писем в минуту вы отправляете? По опыту, обычно Gmail принимает максимум 50/100 писем в минуту.
ИЗМЕНИТЬ согласно комментарию
Ну, похоже, та же ошибка возникает с неправильным HELO/HELO (как я и подозревал изначально).
Я только что попробовал:
$> telnet smtp-relay.gmail.com 25
Trying 108.177.15.28...
Connected to gmail-smtp-relay.l.google.com.
Escape character is '^]'.
220 smtp-relay.gmail.com ESMTP b8-v6sm74445wrr.1 - gsmtp
helo localhost
421 4.7.0 Try again later, closing connection. (EHLO) b8-v6sm74445wrr.1 - gsmtp
Connection closed by foreign host.
Так что это определенно ваша строка EHLO.
myhostname = localhost
У вас в файле есть main.cf
, вы должны изменить его на myhostname = [your server fqdn]
, т.е. у вас должно бытьПолное доменное имядля вашего сервера, заполнив корректные записи DNS/rDNS.
решение2
Я столкнулся с этой проблемой при использовании Symfony/Mailer в моем PHP-приложении. Которое использовало SMTP-реле следующим образом:
MAILER_DSN=smtp://smtp-relay.gmail.com:587
Исправление заключалось в определении local_domain
параметра:
MAILER_DSN=smtp://smtp-relay.gmail.com:587?local_domain=your-domain.com