Я унаследовал веб-сайт, который очевидно использует Exim в качестве своего MTA. Допустим, мы можем получить доступ к сайту по адресу:
Пользователи, работающие в Example Corp., заметили, что они не получил электронную почту когда веб-приложение PHP пыталось отправить почту на такие адреса, как:
jane.doe@example.com support@example.com и т. д.
Вопрос
В SPF записи кажется, лучше всего работает, когда сервер отправляет почту с имя хоста example.com. Однако мы не можем отправлять электронные письма кому-либо на example.com, если это имя хоста.
Я изменил имя хоста на сервере, но теперь оно не работает с существующими записями SPF (подробности ниже).
Думаю, мне нужен совет по настройке имени хоста или Exim.
Задний план
Электронная почта, отправленная на внешние адреса в GMail, Yahoo, Mailinator и т. Д., Прошла нормально. Я использую Mailinator для тестирования писем, потому что вы можете отправлять электронные письма на любой адрес без необходимости создавать полную учетную запись. Я проводил тесты с таким синтаксисом.
Этот тест пройдет успешно.
echo "This is message body." | mail -s "SMTP Test 1" -r "from_address@example.com" to_address@mailinator.com
Этот тест не пройдет.
echo "This is message body." | mail -s "SMTP Test 1" -r "from_address@example.com" to_address@example.com
Некоторые простые тесты маршрутизации можно выполнить, используя опцию проверки адреса. Этот тест пройдет успешно.
exim -bt to_address@mailinator.com
to_address@mailinator.com
router = dnslookup, transport = remote_smtp
host mail.mailinator.com [2600:3c03::f03c:91ff:fe50:caa7] MX=10
host mail.mailinator.com [23.239.11.30] MX=10
Этот тест не пройдет.
exim -bt support@example.com
support@example.com is undeliverable
Этот пост был полезен и указал мне направление настройки имени хоста. http://jblevins.org/log/hostname
Я понял, что в общедоступном DNS есть запись с именем store.example.com, указывающая на правильный IP-адрес. Я ввел это как имя хоста.
sudo hostname store.example.com
Убедитесь, что store.example.com находится внутри сетевого файла. Это должно гарантировать, что имя хоста останется после перезагрузки.
sudo nano /etc/sysconfig/network
sudo service exim restart
Проблема в том, что теперь Google жалуется на отсутствие записи SPF.
Received-Spf: none (google.com: user@store.example.com не указывает разрешенные хосты-отправители) client-ip = xxx.xxx.xxx.xxx;
Я понимаю, что могу создать запись SPF, но было бы проще использовать существующую для example.com. Когда это было имя хоста, заголовок в GMail говорил:
Received-Spf: пройти (google.com: домен user@example.com обозначает xxx.xxx.xxx.xxx в качестве разрешенного отправителя) client-ip = xxx.xxx.xxx.xxx;
Серверная среда
CentOS версии 6.6
ls /etc/alternatives/ -l | grep mta
lrwxrwxrwx. 1 root root 23 Feb 23 09:28 mta -> /usr/sbin/sendmail.exim
lrwxrwxrwx. 1 root root 19 Feb 23 09:28 mta-mailq -> /usr/bin/mailq.exim
lrwxrwxrwx. 1 root root 29 Feb 23 09:28 mta-mailqman -> /usr/share/man/man8/exim.8.gz
lrwxrwxrwx. 1 root root 24 Feb 23 09:28 mta-newaliases -> /usr/bin/newaliases.exim
lrwxrwxrwx. 1 root root 15 Feb 23 09:28 mta-pam -> /etc/pam.d/exim
lrwxrwxrwx. 1 root root 19 Feb 23 09:28 mta-rmail -> /usr/bin/rmail.exim
lrwxrwxrwx. 1 root root 19 Feb 23 09:28 mta-rsmtp -> /usr/bin/rsmtp.exim
lrwxrwxrwx. 1 root root 18 Feb 23 09:28 mta-runq -> /usr/bin/runq.exim
lrwxrwxrwx. 1 root root 22 Feb 23 09:28 mta-sendmail -> /usr/lib/sendmail.exim
exim -bV
Exim version 4.72 #1 built 10-Oct-2014 09:23:33
Copyright (c) University of Cambridge, 1995 - 2007
Berkeley DB: Berkeley DB 4.7.25: (September 9, 2013)
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc TCPwrappers OpenSSL Content_Scanning DKIM Old_Demime
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch ldap ldapdn ldapm nis nis0 nisplus passwd sqlite
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
OpenSSL compile-time version: OpenSSL 1.0.1e-fips 11 Feb 2013
OpenSSL runtime version: OpenSSL 1.0.1e-fips 11 Feb 2013
Configuration file is /etc/exim/exim.conf
Я предполагаю, что почта для example.com должна быть перенаправлена на «настоящий» почтовый сервер для этого домена, или, возможно, вся почта должна быть перенаправлена на «умный хост».
Я не знаю, как настроен пакет exim по умолчанию для Centos (если такой есть) ... Вы должны сделать конфигурацию доступной где-нибудь, чтобы я мог точно сказать, что нужно изменить. В принципе:
убедитесь, что example.com не указан в local_domains (проверьте dnslookup
router, или, по крайней мере, один из первых маршрутизаторов в конфигурации (маршрутизаторы обрабатываются по порядку, первый совпавший побеждает).
Ищи smarthost
чтобы посмотреть, есть ли для этого конфиг; вам нужно как-то указать реальный адрес почтового сервера.
Вы также можете указать это как первый роутер:
smarthost: driver = manualroute domains = * transport = remote_smtp route_data = real.mailserver.example.com
Видеть exim.org для описания файла конфигурации по умолчанию.
Способ разработки SPF требует, чтобы вы добавили еще одну запись SPF:
Домены и хосты идентифицируют машины, которым разрешено отправлять электронную почту от их имени. Они делают это, добавляя дополнительные записи к существующей информации DNS: каждое доменное имя или хост, имеющий запись A или MX, должен иметь запись SPF, определяющую политику, если она используется либо в адресе электронной почты, либо в качестве аргумента HELO / EHLO.
В нем говорится: «каждое доменное имя или хост ... используется либо в адресе электронной почты, либо в качестве аргумента HELO / EHLO». Поскольку вы изменили адрес электронной почты, который отправляете, с user@example.com на user@store.example.com, вам необходимо добавить соответствующую запись SPF для store.example.com.