Для почтового сервера я использую iredmail
. У меня есть почтовый сервер со следующими настройками:
# /etc/hostname
mail
# /etc/hosts
127.0.1.1 mail.mydomain.com mail
127.0.0.1 localhost
поэтому полное доменное имя — mail.mydomain.com
.
ЗдесьЯ нашел примеры, которые я использовал, но с этими примерами мой сервер мог отправлять электронные письма, но не мог получать:
Type Name Value TTL
A @ 195.201.40.1 1 hour # Web server
A mail 195.201.40.2 1 hour # Mail server
MX @ mail.mydomain.com (Priority: 10) 1 hour
TXT @ v=spf1 ip4:195.201.40.2 -all 1 hour
TXT @ v=DMARC1; p=reject; sp=reject;... 1 hour
TXT _adsp._domainkey dkim=all
TXT dkim._domainkey v=DKIM1; k=rsa; p=MIGfMA0GCSq...
Затем я изменил:
MX @ mail.mydomain.com (Priority: 10) 1 hour
к
MX mail mail.mydomain.com (Priority: 10) 1 hour
и почтовый сервер начал принимать электронные письма.
У меня два блока вопросов:
1) Насколько я понимаю, внешние почтовые сервисы (например, gmail) отправляют письма на mydomain.com
, а не на mail.mydomain.com
, потому что мой адрес электронной почты выглядит как [email protected]
, а не как [email protected]
. Почему изменение @
на mail
решило проблему получения писем?
Я понимаю запись MX @ mail.mydomain.com
как: «внешняя служба электронной почты, если вы отправляете электронное письмо на[email protected](@ = mydomain.com), затем отправить письмо на сервер с полным доменным именем mail.mydomain.com", но моя логика, похоже, не работает. Почему?
Здесьмы видим, что имя хоста может быть @
с разным FQDN. Почему в моем случае это не работает?
2) Для записей TXT, какое Имя мне следует указать? @
или mail
, например, доменное имя или имя хоста? Если mail
, значит ли это, что если у меня 10 почтовых серверов, для всех них мне нужно создать свои собственные записи TXT?
решение1
Я перевел ваши записи DNS в формат bind. Если вы не меняете запись, вам не нужно указывать TTL для записи.
Я преобразовал записи SPF в простейшую форму. A
Правило для mail
записи предназначено для -helo
проверок SPF. Правило для указывает, что с поддомена www
не следует отправлять электронные письма .www
Далее следуют записи для вашего домена и поддоменов. (Обратите внимание на точку в конце записи MX. Если она отсутствует, просто используйте mail
).
@ IN A 195.201.40.1
IN MX mail.mydomain.com.
IN TXT "v=spf1 mx -all"
Стандартные сервисы mail и www (некоторые браузеры будут пытаться использовать www, даже если он не указан в записи).
mail IN A 195.201.40.2
IN TXT "v=spf1 a -all"
www IN A 195.201.40.1
IN TXT "v=spf1 -all"
Конфигурация для DMARC с отчетами. Пока отчеты не покажут, что у вас нет проблем, я бы не стал использовать политику reject
. Вы можете начать с none
в качестве своей политики.
_dmarc IN TXT "v=DMARC1; p=reject; sp=reject;..."
*._report.dmarc IN TXT "v=DMARC1"
Конфигурация для DKIM. _adsp
похоже, больше не соответствует стандартам. Замените dkim
на имя ключа, которое вы используете при подписании.
_adsp._domainkey IN TXT dkim=all
dkim._domainkey IN TXT v=DKIM1; k=rsa; p=MIGfMA0GCSq...
решение2
1) Почта будет отправлена на имя хоста, указанное в записи MX для части имени хоста адреса электронной почты. Например, когда почта отправляется на[email protected], происходит следующее:
Одна из настроенных записей MX взята для gmail.com:
# dig mx gmail.com +short | head -n 1
5 gmail-smtp-in.l.google.com.
Электронная почта доставляется на IP-адрес соответствующего почтового сервера:
# dig gmail-smtp-in.l.google.com +short
173.194.221.27
В вашем случае неясно, как была решена проблема, так как первоначальная конфигурация выглядит хорошо. Попробуйте проверить, какой MX-сервер отвечает за ваше доменное имя и к какому IP-адресу он относится, используя публичный DNS:
# dig mx mydomain.com @8.8.8.8 +short
mail.mydomain.com
# dig mail.mydomain.com @8.8.8.8 +short
2) mail.
Для записи SPF необходимо указать доменное имя (без части). Что касается DKIM и DMARC, то к доменному имени (без mail.
части) также следует добавить префиксы, например:
TXT _dmarc v=DMARC1; p=reject; sp=reject;...
TXT dkim._domainkey v=DKIM1; k=rsa; p=MIGfMA0GCSq...