Я недавно столкнулся с вики Debian, не рекомендуя устанавливать exim
с primary_hostname
явно. Насколько я могу судить, вот код который выбирает primary_hostname
.
В принципе, либо у меня есть полное доменное имя в /etc/hostname
(myhostname.example.com
), или просто myhostname
и линия в /etc/hosts
:
ip.add.re.ss myhostname.example.com myhostname
Теперь, какой IP-адрес? 127.0.0.1
или внешний?
Я предполагаю, что полное доменное имя указывает на localhost
хорошо. Так, myhostname
в /etc/hostname
, и следующие в /etc/hosts
?
127.0.0.1 myhostname.example.com myhostname localhost
Для меня это выглядит многообещающим:
$ hostname
myhostname
$ hostname -d
example.com
$ hostname --fqdn
myhostname.example.com
Кроме этого exim
вероятно использовал бы myhostname.example.com
для приветствия (EHLO
). И это может повлиять на то, будут ли электронные письма считаться спамом или нет. Это, или я должен отправить письмо от myhostname.example.com
не из example.com
?
Может ли кто-нибудь разорвать цикл для меня? И это не только о exim
. Есть ли оптимальные настройки, которые сделают всех счастливыми? Или большинство из них?
Не уверен, что согласен с советом не настраивать primary_hostname
явно. Конечно, в принципе хорошая идея - настроить имя хоста системы только в одном месте, а затем передать его через остальную систему, но реальность отправки электронной почты 2019 года такова, что вы не можете просто изменить исходящее полное доменное имя и ожидать чего-то чтобы продолжать работать. В идеале обратный DNS вашего исходящего IP-адреса и вашего HELO-имени будут одинаковыми и будут последовательно преобразовываться обратно в IP-адрес. Поэтому очень важно настроить правильный IP-адрес во внешнем DNS для вашего домена. Если вы знаете, что ваш сервер всегда будет иметь надежный доступ к этому внешнему DNS, тогда нет причин помещать что-либо из этого в /etc/hosts
и я бы просто придерживался 127.0.0.1 localhost
там.
Для Exim я бы лично рекомендовал явную настройку primary_hostname
. Кроме того, я хотел бы обратить ваше внимание на qualify_domain
параметр, который по умолчанию равен значению primary_hostname
но вы также можете явно указать только свое доменное имя.
Теперь, когда я думаю об этом, идея рекомендации может заключаться в том, чтобы не изменять настройку, которая влияет на других. Но лучше измените любой конкретный параметр, который вы хотите изменить. Хочу изменить From
заголовок? + Изменить /etc/mailname
. HELO
имя хоста? + Изменить helo_data
. Что в основном сводится к:
/etc/exim4/exim4.conf.localmacros
(HELO
имя хоста):
REMOTE_SMTP_HELO_DATA = mydomain.com
/etc/mailname
(From
заголовок):
mydomain.com
затем
# update-exim4.conf
# systemctl reload exim4
Вы можете подтвердить, что он работает, отправив тестовое письмо на порт 25. средство проверки подлинности:
echo test email | exim check-auth@verifier.port25.com # replies back
echo test email | exim check-auth2@verifier.port25.com # replies back
echo test email | exim check-auth-jsmith=yourdomain.com@verifier.port25.com \
# replies to jsmith@yourdomain.com
В полученном отчете будет строка:
HELO hostname: somedomain.com
Или просто добавьте -v
вариант:
# echo test email | exim -v root@dst.com
LOG: MAIN
<= root@src.com U=root P=local S=290
delivering 1hM501-0007Nn-7A
R: dnslookup for root@dst.com
T: remote_smtp for root@dst.com
Connecting to mail.dst.com [ip.add.re.ss]:25 ... connected
SMTP<< 220 dst.com ESMTP Postfix (Debian/GNU)
SMTP>> EHLO src.com
SMTP<< 250-dst.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
SMTP>> STARTTLS
SMTP<< 220 2.0.0 Ready to start TLS
SMTP>> EHLO src.com
SMTP<< 250-dst.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
SMTP>> MAIL FROM:<root@src.com> SIZE=1322
SMTP>> RCPT TO:<root@dst.com>
SMTP>> DATA
SMTP<< 250 2.1.0 Ok
SMTP<< 250 2.1.5 Ok
SMTP<< 354 End data with <CR><LF>.<CR><LF>
SMTP>> writing message and terminating "."
SMTP<< 250 2.0.0 Ok: queued as 0019EEC0B6D
SMTP>> QUIT
LOG: MAIN
=> root@dst.com R=dnslookup T=remote_smtp H=mail.dst.com [ip.add.re.ss] X=TLS1.0:RSA_AES_256_CBC_SHA1:32 DN="CN=dst.com"
LOG: MAIN
Completed
Кроме того, вы можете проверить почтовый ящик назначения:
получено exim
:
Received: from [ip.add.re.ss] (helo=HELO_HOSTNAME)
...
получено postfix
:
Received: from HELO_HOSTNAME (myhostname [ip.add.re.ss])
...
/etc/hosts
Я считаю, что имя хоста должно быть именем хоста, а не полным доменным именем.
Добавлять ли это в /etc/hosts
... Я бы не. Судя по тому, что я вижу, программное обеспечение в наши дни не ожидает, что имя хоста будет разрешено ни к чему. Или его можно отменить. (То есть, если вы где-то не используете имя хоста в качестве имени домена.) Это означает, что нужно только это для 127.0.0.1
:
127.0.0.1 localhost