Настройка почты Яндекс в Exim4.

Для того, чтобы отправка почты с сервера шла посредством почтового сервера Яндекс, необходимо выполнить следующие шаги:

0. Установка exim4.

apt-get install exim4

1. Конфигурирование exim4.

dpkg-reconfigure exim4-config

В результате будет сформирован файл /etc/exim4/update-exim4.conf.conf со следующим содержимым:

 dc_eximconfig_configtype='satellite'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost='DOMAIN.ru'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.yandex.ru:587'
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

2. Добавление пользователя яндекс.почты, от имени которого будет подключение и отправка писем.

Необходимо добавить в файл /etc/exim4/update-exim4.conf.conf/passwd.client данных аккаунта Яндекс.почты.

smtp.yandex.ru:[email protected]:PASSWORD

3. Добавление на сервере данных email

В файле /etc/email-addresses добавьте необходимые сопоставления в формате: пользователь в системе, от которого отправляется почта: его email

user1: [email protected]
user2: [email protected]

Само собой, такие email адреса должны существовать. Также для этих email адресов необходимы корректные записи логин:пароль на сервере (см. п.2).

4. Проверка корректного имени хоста

cat /etc/hosts 
xx.xx.xx.xx DOMAIN.ru
cat /etc/hostname
DOMAIN.ru

5. Ошибка Unrouteable address

Если письма не отправляются на адреса домена DOMAIN.ru, то необходимо проверить настройки router в exim.

В domains необходимо прописать правило обработки локальных доменов.

/etc/exim4/conf.d/router/200_exim4-config_primary
smarthost:
debug_print = "R: smarthost for [email protected]$domain"
driver = manualroute
domains = +local_domains : !local_domains
transport = remote_smtp_smarthost
route_list = * DCsmarthost byname
host_find_failed = ignore
same_domain_copy_routing = yes
no_more

6. SFP запись

При отправке письма на почту google посредством sendmail, например, можно заметить в заголовке письма следующую запись:

 spf=neutral (google.com: 2a02:6b8:0:1472:2741:0:8b7:100 is neither permitted nor denied by domain of  ...

Или такую:

spf=fail (google.com: domain of ВАШ@email.ru does not designate IP as permitted sender) smtp.mailfrom= ВАШ@email.ru 

И в ряде случаев письмо может попадать в спам, что явно нежелательно. Для решения такой проблемы необходимо проверить запись SPF для домена.
Поскольку письма отправляются только через smtp Яндекса, это должно быть отражено в записи SPF:

v=spf1 mx include:_spf.yandex.net ~all

Указанная запись должна помочь.