Назад | Перейти на главную страницу

Exim на Centos - Настройка gmail smtp

Я хочу настроить 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

После этого вы получите много данных. Добавьте вывод к вопросу