Я хочу настроить Exim для отправки почты через мой gmail (на самом деле мои домены google apps).
Я добавил маршрутизатор, транспорт и аутентификатор. В частности:
gmail_route:
driver = manualroute
transport = gmail_relay
route_list = * smtp.gmail.com
gmail_relay:
driver = smtp
port = 587
hosts_require_auth = $host_address
hosts_require_tls = $host_address
gmail_login:
driver = plaintext
public_name = LOGIN
hide client_send = :me@domain.com:mypassword
Мне удалось настроить это для Exim на Debian, но я не могу понять это на Centos.
Когда я пытаюсь отправить при мониторинге журналов, он сообщает мне «IP-адрес не найден ...», а затем «Ошибка SMTP с удаленного почтового сервера ...». Также написано «Требуется аутентификация».
Вот более подробная информация: Представьте, что я отправляю кому-то@gmail.com
someone@gmail.com R=gmail_route T=gmail_relay: SMTP error from remote mail server after MAIL FROM:<me@domain.com> SIZE=1492:
host gmail-smtp-msa.l.google.com [2a00:1450:4001:c02::6d]:
530-5.5.1 Authentication Required. Learn more at\n530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 k41sm12066343een.19 - gsmtp
Можно что-нибудь исправить? Я планирую использовать его в основном для отправки себе электронных писем с предупреждениями (fail2ban, logwatch и т. Д.). И настройка Exim по умолчанию, похоже, работает, но я бы предпочел использовать свою электронную почту gapps, например hostname@mydomain.com - во-первых, электронные письма отправлялись в спам до того, как я обучил свою учетную запись электронной почты помещать их во входящие ...
Спасибо,
Вам нужно изменить свой hosts_require_auth
и hosts_require_tls
варианты к следующему:
hosts_require_auth = <; $host_address
hosts_require_tls = <; $host_address
Проблема возникнет при использовании IPv6 для отправки. При отправке с IPv6, $host_address
будет IPv6-адресом и, следовательно, будет содержать символы двоеточия (:
). Двоеточие обычно используется в качестве разделителя списков в eximʻe, поэтому сопоставление адресов не выполняется, и exim не аутентифицирует себя.
Добавление к спискам префиксов <;
изменяет символ разделителя списка на точку с запятой и предотвращает проблему с адресами IPv6.
Вы пробовали это?
Использование GMail в качестве smarthost:
Примечание. Следующее должно быть помещено в соответствующие разделы файла конфигурации, например, после аутентификаторов начала.
Добавьте маршрутизатор перед маршрутизатором dnslookup или вместо него:
gmail_route: driver = manualroute transport = gmail_relay route_list = * smtp.gmail.com
Добавить транспорт:
gmail_relay: драйвер = smtp порт = 587 hosts_require_auth = $ host_address hosts_require_tls = $ host_address
Добавьте аутентификатор (заменив myaccount@gmail.com и mypassword данными вашей учетной записи):
gmail_login: driver = plaintext public_name = LOGIN скрыть client_send =: myaccount@gmail.com: mypassword
$ host_address используется для hosts_require_auth и hosts_require_tls вместо smtp.gmail.com, чтобы избежать случайных ошибок 530 5.5.1 Authentication Required. Это вызвано изменением IP-адресов в запросах DNS для smtp.gmail.com. $ host_address расширится до конкретного IP-адреса, разрешенного маршрутизатором gmail_route. Для дополнительной безопасности используйте пароль для каждого приложения. Это также работает с аккаунтами Google Apps.
ИСТОЧНИК: https://wiki.archlinux.org/index.php/Exim_with_Remote_SMTP_server
Я использовал следующую конфигурацию
МАРШРУТИЗАТОР
send_via_gmail:
driver = manualroute
domains = ! +local_domains
transport = gmail_smtp
route_list = * smtp.gmail.com
ТРАНСПОРТ
gmail_smtp:
driver = smtp
port = 587
hosts_require_auth = $host_address
hosts_require_tls = $host_address
АУТЕНТИКАТОР
gmail_login:
driver = plaintext
public_name = LOGIN
client_send = : alex.hha@gmail.com : 7654321
Какой-то простой тест
# swaks -s 127.0.0.1 --to user@example.net --from alex.hha@gmail.com
=== Trying 127.0.0.1:25...
=== Connected to 127.0.0.1.
<- 220 mail.example.net, [127.0.0.1]
-> EHLO mail.example.net
<- 250-mail.example.net Hello localhost [127.0.0.1]
<- 250-SIZE 52428800
<- 250-PIPELINING
<- 250-STARTTLS
<- 250 HELP
-> MAIL FROM:<alex.hha@gmail.com>
<- 250 OK
-> RCPT TO:<user@example.net>
<- 250 Accepted
-> DATA
<- 354 Enter message, ending with "." on a line by itself
-> Date: Wed, 05 Mar 2014 10:22:55 -0500
-> To: user@example.net
-> From: alex.hha@gmail.com
-> Subject: test Wed, 05 Mar 2014 10:22:55 -0500
-> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
->
-> This is a test mailing
->
-> .
<- 250 OK id=1WLDep-0004ED-Kb
-> QUIT
<- 221 mail.example.net closing connection
=== Connection closed with remote host.
Проверить файл почтового журнала
# cat /var/log/exim/main.log | grep 1WLDep-0004ED-Kb
2014-03-05 10:22:55 1WLDep-0004ED-Kb <= alex.hha@gmail.com H=localhost (mail.example.net) [127.0.0.1] P=esmtp S=479
2014-03-05 10:22:55 1WLDep-0004ED-Kb gmail-smtp-msa.l.google.com [2a00:1450:4001:c02::6d] Network is unreachable
2014-03-05 10:23:00 1WLDep-0004ED-Kb => user@example.net R=send_via_gmail T=gmail_smtp H=gmail-smtp-msa.l.google.com [173.194.70.108] X=UNKNOWN:ECDHE-RSA-AES128-GCM-SHA256:128
2014-03-05 10:23:00 1WLDep-0004ED-Kb Completed
Вы можете запустить exim в режиме отладки
# echo -e "helo localhost\nmail from:<me@domain.com>\nrcpt to:<someone@gmail.com>\nDATA\nHello world\n.\nquit" | exim -bhc 127.0.0.1 -d+all
После этого вы получите много данных. Добавьте вывод к вопросу