Настройка Exim4 для отправки писем (Все письма попадают в спам)

Sylon

Постоялец
Регистрация
1 Мар 2015
Сообщения
322
Реакции
153
Приветствую! Прошу поделиться опытом в настройке почтового агента Exim. Почитав статьи из-за отсутствия опыта некоторые настройки приводят в ступор.
Сервер: ubuntu 16.04, Nginx 1.10, PHP 7, MySQL 5.7
На нём два сайта: сайт 1: domain.com, сайт 2: domain.ru
Пришёл к выводу, что оптимальная связка: Exim4 (для отправки писем) и почта для домена от mail.ru или yandex (думаю не принципиально).
Не понятно какой требуется сценарий взаимодействия двух отдельных сайтов с Exim и то как их настроить корректно. Я так понимаю хост один будет на ip.
В мануле Для просмотра ссылки Войди или Зарегистрируйся возник вопрос, если входящая почта не нужна, значит в настройках не нужно создавать юзера?

Аутентификация SMTP
Этот раздел раскрывает, как настроить Exim4 для использования SMTP-AUTH с TLS и SASL.

Первым шагом будет создание сертификата для использования TLS. Введите следующее в терминале:

sudo /usr/share/doc/exim4-base/examples/exim-gencert

Теперь Exim4 нуждается в настройке TLS. Отредактируйте /etc/exim4/conf.d/main/03_exim4-config_tlsoptions, добавив следующее:

MAIN_TLS_ENABLE = yes

Далее вам потребуется настроить Exim4 на использование saslauthd для аутентификации. Вызовите на редактирование/etc/exim4/conf.d/auth/30_exim4-config_examples и раскомментируйте секции plain_saslauthd_server и login_saslauthd_server:

plain_saslauthd_server:
driver = plaintext
public_name = PLAIN
server_condition = ${if saslauthd{{$auth2}{$auth3}}{1}{0}}
server_set_id = $auth2
server_prompts = :
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif
#
login_saslauthd_server:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
# don't send system passwords over unencrypted connections
server_condition = ${if saslauthd{{$auth1}{$auth2}}{1}{0}}
server_set_id = $auth1
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif

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

sudo /usr/share/doc/exim4-base/examples/exim-adduser

Новый файл паролей должен быть защищён от пользователей с помощью следующих команд:

sudo chown root:Debian-exim /etc/exim4/passwd
sudo chmod 640 /etc/exim4/passwd

В конце обновите настройки Exim4 и перезапустите сервис:

sudo update-exim4.conf
sudo systemctl restart exim4.service
Буду признателен любой помощи.
 
Последнее редактирование:
Есть опыт настройки postfix, но с exim имхо то же самое.
А запись прописываете на mail.ru (yandex.ru). В spf указываете что то типа этого v=spf1 a mx ~all.
Пользователя создавать не нужно. Вся входящая почта будет идти на mx запись.
 
если привязываете почту домена к Для просмотра ссылки Войди или Зарегистрируйся или Для просмотра ссылки Войди или Зарегистрируйся - Exim вам вообще не нужен
и прием и отправку делайте с соответствующего почтового аккаунта
 
Если доменов несколько нужно из указать при установке Exim, или есть ещё вариант разрешить всем доменам отправлять почту через сервер.
Нужно для начала настроить FQDN для сервера, нужно будет указывать при установке Exim.
Как настроить Для просмотра ссылки Войди или Зарегистрируйся

установить Exim
Код:
apt-get install exim4
Чтобы настроить Exim, запускаем
Код:
dpkg-reconfigure exim4-config

Откроется интерфейс для настройки exim4

1. General type of mail configuration
Выбираем internet site; mail is sent and received directly using SMTP

2. System mail name
Вписываем FQDN сервера, который прописали в DNS

3. IP-addresses to listen on for incoming SMTP connections
Можно оставить по умолчанию 127.0.0.1 ; ::1
Или оставить только 127.0.0.1 если не нужно слушать IPv6 интерфейс

4. Other destinations for which mail is accepted
!!!!!! Удаляем значение по умолчанию и оставляем поле пустым !!!!!!!

5. Domains to relay mail for
Здесь есть два варианта
a. Можно указать список доменов которым разрешено отправлять почту (список через точку с запятой) domain.com ; domain.ru При появлении новых доменов не забывайте их заносить в конфиг.
b. Можно оставить поле пустым, но на следующем шаге разрешить всем доменам отправлять почту через этот почтовый сервер.

6. Machines to relay mail for
Или оставляем пустым если на шаге 5 указали домены, или укажем 127.0.0.1, чтобы разрешить релей для всех запросов с локального IP.
При этой конфигурации есть один негативный момент. Если ваш сайт поломают, то злоумышленники смогут слать почту с любых доменов через ваш сервер.

7. Keep number of DNS-queries minimal (Dial-on-Demand)?
выбираем No

8. Delivery method for local mail
Оставляем по умолчанию: складывать все в /var/mail

9. Split configuration into small files?
выбираем No

10. Root and postmaster mail recipient
Вписываем адрес администратора почты куда будут пересылать сообщения
root you@yourdomain.tld

Я по этим руководствам устанавливал, и всё что выше это из этих руководств.
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
 
Промежуточный вопрос: корректно если hostname будет к примеру sylon (при этом у домены сайтов располагающихся на нём будут sylon.com и sylon.ru? Перечитал статьи на этот счёт, нет чётких мнений. При получении VPS, hostname сейчас: 15838.local
Exim вам вообще не нужен
У Яндекса и Майла лимит на исходящие, поэтому они для рассылки не годятся.
 
Последнее редактирование:
Выберите из двух доменов один и назначьте его на hostname
Второй сайт будет работать с почтой через первый, он же hostname
 
тогда вам желательно еще DKIM прикрутить, будет меньше вероятность что забанят за рассылки
с учетом всего этого проще наверно поставить панель для хостинга, типа VESTACP и т.п.
 
Как считаете, такой вариант hostname и hosts корректный?
/etc/hostname
Код:
hostname = server
/etc/hosts
Код:
127.0.0.1       localhost
127.0.1.1 server

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.0.1 server.domain.com server
93.105.34.202 server.domain.com server
Было вот так:
Код:
127.0.0.1       localhost
127.0.1.1 55634.local

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.0.1 55634.local
PS. Скажите, пожалуйста, если два и более домена на одном ip, то какая должна быть PTR-запись?
Я так понимаю по логике PTR-запись равняется FQDN (server.domain.com)?
 
Последнее редактирование:
пиши реальный хост, который будет смотреть в инет
или sylon.com или sylon.ru
 
пиши реальный хост, который будет смотреть в инет
или sylon.com или sylon.ru
Судя по статьям, правило: FQDN не должно совпадать с доменным именем на котором есть сайт. Чем чревато так и не понял.
 
Назад
Сверху