У меня есть экземпляр GCP, работающий с whm / cpanel и настройка mailgun с использованием exim для нескольких учетных записей с использованием нескольких доменов.
Текущая настройка работает для всех доменов, но проверяется только для основного домена. Mailgun поддерживает несколько доменов с несколькими учетными данными.
При отправке электронного письма из домена, отличного от 'c ********* t.com', электронные письма имеют VIA в Gmail, потому что header.from
не совпадает.
dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=c*****s.com
Снимок экрана "VIA" и "Изображения не отображаются"
Раздел: AUTH
mailgun_login:
driver = plaintext
public_name = LOGIN
hide client_send = : postmaster@c*********t.com :
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Раздел: ROUTERSTART
mailgun:
driver = manualroute
domains = ! +local_domains
transport = mailgun_transport
route_list = "* smtp.mailgun.org::2525 byname"
host_find_failed = defer
no_more
Раздел: TRANSPORTSTART
mailgun_transport:
driver = smtp
hosts = smtp.mailgun.org
hosts_require_auth = smtp.mailgun.org
hosts_require_tls = smtp.mailgun.org
Любые предложения или альтернативы будут оценены. Спасибо.
ОБНОВИТЬ Текущие ошибки в журнале на основе ответа, приведенного ниже:
LOG: MAIN
cwd=/usr/local/cpanel/whostmgr/docroot 4 args: /usr/sbin/exim -v -M
1gPYIq-0001cc-UL
delivering 1gPYIq-0001cc-UL
Transport port=25 replaced by host-specific port=2525
Connecting to smtp.mailgun.org [**.**.**.***]:2525 ... connected
SMTP<< 220 ak47 ESMTP ready
SMTP>> EHLO instance-1
SMTP<< 250-ak47
250-AUTH PLAIN LOGIN
250-SIZE 52428800
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-SMTPUTF8
250 STARTTLS
SMTP>> STARTTLS
SMTP<< 220 2.0.0 Start TLS
SMTP>> EHLO instance-1
SMTP<< 250-ak47
250-AUTH PLAIN LOGIN
250-SIZE 52428800
250-8BITMIME
250-ENHANCEDSTATUSCODES
250 SMTPUTF8
SMTP>> AUTH LOGIN
SMTP<< 334 VXNlcm5hbWU6
SMTP>> *
SMTP<< 500 5.5.1 Invalid command
SMTP>> QUIT
SMTP(close)>>
Transport port=25 replaced by host-specific port=2525
Connecting to smtp.mailgun.org [**.**.**.***]:2525 ... connected
SMTP<< 220 ak47 ESMTP ready
SMTP>> EHLO instance-1
SMTP<< 250-ak47
250-AUTH PLAIN LOGIN
250-SIZE 52428800
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-SMTPUTF8
250 STARTTLS
SMTP>> STARTTLS
SMTP<< 220 2.0.0 Start TLS
SMTP>> EHLO instance-1
SMTP<< 250-ak47
250-AUTH PLAIN LOGIN
250-SIZE 52428800
250-8BITMIME
250-ENHANCEDSTATUSCODES
250 SMTPUTF8
SMTP>> AUTH LOGIN
SMTP<< 334 VXNlcm5hbWU6
SMTP>> *
SMTP<< 500 5.5.1 Invalid command
SMTP>> QUIT
SMTP(close)>>
Transport port=25 replaced by host-specific port=2525
Connecting to smtp.mailgun.org [**.**.**.***]:2525 ... connected
SMTP<< 220 ak47 ESMTP ready
SMTP>> EHLO instance-1
SMTP<< 250-ak47
250-AUTH PLAIN LOGIN
250-SIZE 52428800
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-SMTPUTF8
250 STARTTLS
SMTP>> STARTTLS
SMTP<< 220 2.0.0 Start TLS
SMTP>> EHLO instance-1
SMTP<< 250-ak47
250-AUTH PLAIN LOGIN
250-SIZE 52428800
250-8BITMIME
250-ENHANCEDSTATUSCODES
250 SMTPUTF8
SMTP>> AUTH LOGIN
SMTP<< 334 VXNlcm5hbWU6
SMTP>> *
SMTP<< 500 5.5.1 Invalid command
SMTP>> QUIT
SMTP(close)>>
LOG: MAIN
== *********@gmail.com R=mailgun T=mailgun_transport defer (-42): authentication required but authentication attempt(s) failed
Отработав ответ Caracos (который я попробовал, но не смог заработать), я смог найти это сообщение на форуме, и после изменения деталей Mailgun он работал как шарм. Мне также нравится это решение, потому что оно при необходимости масштабируется до других служб ретрансляции почты.
https://forums.cpanel.net/threads/how-to-send-email-from-different-domains-using-different-smarthosts.641949/
Я просто обрисую настройки, которые я использовал для Mailgun, но по ссылке вы найдете более подробные объяснения, изображения и другие примеры, такие как Sendgrid, Mailjet и Sendpulse.
Раздел: AUTH
#Smart Host Sending
sendbysmarthosts:
driver = plaintext
public_name = LOGIN
hide client_send = : ${extract{user}
{${lookup{$sender_address_domain}lsearch{/etc/exim_smarthosts}}}}: ${extract{pass}{${lookup{$sender_address_domain}lsearch{/etc/exim_smarthosts}}}}
Раздел: ПРОГРАММЫ
#Smart Host Sending
sendbysmarthostsrouter:
driver = manualroute
domains = ! +local_domains
condition = "${if eq{${lookup{$sender_address_domain}partial-
lsearch{/etc/exim_smarthosts}{$value}}}{}{false}{true}}"
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
headers_add = "${perl{mailtrapheaders}}"
transport = sendbysmarthoststransport
route_list = * ${extract{smtp} {${lookup{$sender_address_domain}lsearch{/etc/exim_smarthosts}}}}
Раздел: TRANSPORTSTART
#Smart Host Sending
sendbysmarthoststransport:
driver = smtp
port = ${extract{port}
{${lookup{$sender_address_domain}lsearch{/etc/exim_smarthosts}}}}
hosts_require_auth = $host_address
hosts_require_tls = $host_address
Прокрутите страницу вниз, сохраните конфигурацию Exim и убедитесь, что Exim перезапускается.
Это пример данных, смените домен, пользователя и пройдите.
#Sending by Mailgun
domain1.com: domain=domain1.com user=postmaster@mg.domain1.com pass=MAILGUN_password smtp=smtp.mailgun.org port=587
domain2.com: domain=domain2.com user=postmaster@mg.domain2.com pass=MAILGUN_password smtp=smtp.mailgun.org port=587
domain3.com: domain=domain3.com user=postmaster@mg.domain2.com pass=MAILGUN_password smtp=smtp.mailgun.org port=587
В третьем примере используются учетные данные domain2.com для domain3.com, это будет работать, но электронные письма будут содержать через mg.domain2.com
Теперь электронная почта, отправленная из учетных записей электронной почты, созданных cPanel в их соответствующих доменах, будет перехвачено exim (разрешено подключаться к внешним SMTP-серверам) и ретранслируется через Mailgun, если учетные данные в / etc / exim_smarthosts верны и настройки DNS верны. Однако настройки безопасности WHM по-прежнему ограничивают все учетные записи cPanel от подключения к любой внешней SMTP-службе, поэтому нам нужно сделать еще один шаг, чтобы использовать вышеуказанную настройку для электронной почты на основе приложений.
К вашему сведению: это настройка, которая должна быть держался ограничение внешних SMTP-подключений
WHM Admin >> Настройки настройки >> Почта >> Ограничить исходящий SMTP для root, exim и mailman
a) Создайте учетную запись электронной почты в cPanel и получите безопасные учетные данные для входа.
cPanel >> Учетные записи электронной почты >> (Новое письмо) >> Подключить устройства >> Настроить почтовый клиент
б) Используйте это имя пользователя, пароль и данные сервера исходящей почты в своей Joomla, WordPress или другой CMS / приложении / плагине.
Теперь ваши CMS, плагины и приложения подключаются только к внутренней учетной записи SMTP, но когда эта учетная запись отправляется, она передается через внешнюю настройку SMTP на первых шагах.
БОЛЬШОЕ СПАСИБО DigitalComunic на форумах cPanel, чья кропотливая работа и устранение неполадок дали нам надежный обходной путь, который будет полезен на долгие годы !!
У меня такая же настройка (VPS + WHM / cPanel + Exim + Mailgun), и после проведения некоторых онлайн-исследований я нашел несколько полезных веб-сайтов по этой теме и смог выйти с правильной конфигурацией. Ниже приведены решения, которые я сейчас использую на своем VPS, и надеюсь, что они также помогут вам. Это должно решить вашу проблему «через» и может также решить периодически возникающую ошибку «550 5.7.1 Relaying denied» от Mailgun:
Перейдите в «Редактор конфигурации Exim» в WHM. Выберите «Расширенный редактор» и вставьте конфигурацию ниже:
Раздел: AUTH
mailgun_login:
driver = plaintext
public_name = LOGIN
hide client_send = ": ${extract{login}{${lookup{$sender_address_domain}lsearch{/etc/exim_mailgun}{$value}fail}}} : ${extract{password}{${lookup{$sender_address_domain}lsearch{/etc/exim_mailgun}{$value}fail}}}"
Раздел: ROUTERSTART
mailgun:
driver = manualroute
domains = ! +local_domains
transport = mailgun_transport
route_list = "* smtp.mailgun.org::587 byname"
host_find_failed = defer
no_more
Раздел: TRANSPORTSTART
mailgun_transport:
driver = smtp
hosts = smtp.mailgun.org
hosts_require_auth = smtp.mailgun.org
hosts_require_tls = smtp.mailgun.org
Затем создайте файл с именем / etc / exim_mailgun и вставьте содержимое, аналогичное структуре ниже (замените его учетными данными для входа в домен Mailgun, которые были проверены):
domain1.com: username=postmaster@mg.domain1.com password=abcdefghi
domain2.com: username=postmaster@mg.domain2.com password=jklmnopqr
ОБНОВИТЬ:
Как прокомментировал @Supamic, я иногда сталкивался с упомянутой им ошибкой, когда электронное письмо было отправлено системой доставки почты (Mailer-Daemon@hostname.yourserver.com) на мою внешнюю учетную запись электронной почты (Gmail):
authentication required but authentication attempt(s) failed
Я предполагаю, что это, возможно, связано с частью Mailer-Daemon «Идентификация отправителя», поскольку Exim не смог получить учетные данные для входа из моего / etc / exim_mailgun, поскольку нет домена отправителя:
“Sender identification U=mailnull D=-system- S=mailnull”
Чтобы решить эту проблему, техническая поддержка cPanel порекомендовала мне перенаправить всю электронную почту от Mailer-Daemon на локальный адрес электронной почты, размещенный на моем сервере, а затем использовать функцию пересылки для передачи электронной почты в мою учетную запись Gmail.
Что касается периодической ошибки "550 5.7.1 Relaying denied", то после обращения в службу технической поддержки cPanel они дали мне рекомендацию принудительно установить smtp.mailgun.org на один IP, установив статический IP в / etc / hosts вместо позволяя Exim разрешить smtp.mailgun.org на несколько IP-адресов.
Ошибка аутентификации начнет происходить, когда exim разрешит smtp.mailgun.org на несколько IP-адресов. Служба поддержки cPanel не смогла указать точную причину ошибки «550 5.7.1 Relaying denied». Возможно, что-то не так с Mailgun, поддерживающим аутентификацию в своей избыточной SMTP-инфраструктуре.
Вы можете разрешить IP-адреса SMTP-сервера Mailgun, используя любую из следующих команд:
nslookup smtp.mailgun.org
dig +short smtp.mailgun.org @resolver1.opendns.com
Используйте один из IP-адресов из результата и поместите его в файл / etc / hosts:
xxx.xxx.xxx.xxx smtp.mailgun.org
И я хочу повторить @ Supamic's БОЛЬШОЕ СПАСИБО к удивительному Команда технической поддержки cPanel. Их самоотверженность в устранении неполадок заслуживает высокой оценки.