Что это такое?
Exim4 это агент пересылки почтовых сообщений, фактически является простым SMTP-сервером. В нашей статье мы рассмотрим пересылку через SMTP-сервера таких крупных компаний как Google и Yandex. Стоит отметить, что в нашей инструкции предполагается только отправка сообщений, например это удобно для отчетности о работе приложений или событиях.
Установка и настройка
Прежде всего обновите локальный список пакетов с помощью вашего пакетного менеджера, например на Ubuntu и Debian это можно сделать с помощью apt:
apt-get update
Для установки выполните команду:
apt-get install exim4
Примечание: если вам необходимо использовать ACL и другие расширенные функции, то установите exim4-daemon-heavy:
apt-get install exim4-daemon-heavy
Чтобы перейти к настройке, выполните команду:
dpkg-reconfigure exim4-config
Нажмите Ok для начала настройки.
На следующем шаге выберите “mail sent by smarthost; received via SMTP or fetchmail” и нажмите Ok.
Примечание:
- internet site; mail is sent and received directly using SMTP – этот вариант подходит для автономной системы с полным доступом к Интернету. Демон Exim принимает сообщения на локальные домены и доставляет их. Исходящая почта будет доставлена непосредственно на почтовые серверы домена получателя.
- mail sent by smarthost; received via SMTP or fetchmail – этот вариант подходит для автономной системы с ограниченным доступом к Интернету. Демон Exim принимает сообщения на локальные домены и доставляет их. Исходящая почта будет доставлена на Smart host, а уже потом на почтовые серверы домена получателя.
- mail sent by smarthost; no local mail – этот вариант подходит для клиентской системы, все электронные письма отправляются на Smart host без каких-либо локальных доменов.
- local delivery only; not on a network – этот вариант подходит для серверов не подключенных к сети Интернет. Сообщения принимаются и доставляются только для локальных доменов, т.е. отправка на удаленные (внешние) домены не поддерживается.
Здесь введите имя хоста или ваше доменное имя.
Нажмите Ok.
Введите адрес локальной петли, если exim будет использоваться только локальными сервисами. Оставьте поле пустым, для прослушивания всех интерфейсов, или перечислите нужные через символ “;”.
Следующее поле оставьте пустым при отсутствии локальных доменов.
Примечание: при наличии локальных доменов их можно указать, по умолчанию все локальные домены будут обрабатываться одинаково.
Источник: https://1cloud.ru/help/linux/nastrojka-exim4
На следующем шаге укажите список доменов, для которых Exim будет ретранслировать сообщения, выполняя роль Smarthost`а. Если сервер не должен быть smarthost для другого хоста, оставьте этот список пустым.
Здесь укажите адрес используемого smtp-сервера:
smtp.yandex.ru::587
smtp.gmail.com::587
mail.example.com::587
На следующий вопрос ответьте No, если необходимо скрыть локальное имя сервера.
Нажмите Ok.
В обычном режиме работы Exim выполняет поиск DNS при запуске, а также при получении или доставке сообщений. Этот параметр следует выбрать, если в системе используется Dial-on-Demand. Если сервер всегда имеет доступ к Интернету, этот параметр должен быть отключен.
Выберете место хранения почты: в каталоге /var/mail или в домашней директории для каждого пользователя.
На вопрос о разделении файла конфигурации на маленькие – ответьте Yes. Так будет более удобно конфигурировать exim4 далее.
Далее необходимо добавить данные о почтовом ящике, с которого будет происходить отправка почты. Для этого, с помощью текстового редактора, например vi, откройте на редактирование следующий файл:
vi /etc/exim4/passwd.client
Добавьте в него строку следующего вида, указав ваш логин и пароль.
Для Gmail
smtp.google.com:username@gmail.com:password
Для Yandex:
smtp.yandex.ru:username@yandex.ru:password
Для вашего SMTP-сервера:
mail.example.com:username@example.com:password
Содержимое файла будет выглядеть следующим образом:
# password file used when the local exim is authenticating to a remote
# host as a client.
#
# see exim4_passwd_client(5) for more documentation
#
# Example:
### target.mail.server.example:login:password
smtp.google.com:cloud@gmail.com:12345
Следующие настройки будут выполнены на примере почтового сервиса gmail.
Далее внесем изменения в файл /etc/exim4/exim4.conf.template. Откройте его на редактирование с помощью текстового редактора:
vi /etc/exim4/exim4.conf.template
Найдите строку со следующим содержимым:
.ifdef DCconfig_smarthost DCconfig_satellite
После нее вставьте следующие строки:
send_via_gmail:
driver = manualroute
domains = ! +local_domains
transport = gmail_smtp
route_list = * smtp.gmail.com
Найдите первую строку со следующим содержимым:
transport/30_exim4-config_remote_smtp_smarthost
После нее вставьте следующие строки:
gmail_smtp:
driver = smtp
port = 587
hosts_require_auth = $host_address
hosts_require_tls = $host_address
Найдите строку со следующим содержимым:
begin authenticators
После нее вставьте следующие строки, почтовый адрес и пароль измените на ваши:
gmail_login:
driver = plaintext
public_name = login
client_send = : user@gmail.com : password
Также из файла необходимо удалить следующий блок строк, чтобы не было ошибок авторизации:
login:
driver = plaintext
public_name = LOGIN
.ifndef AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS
# Return empty string if not non-TLS AND looking up $host in passwd-file
# yields a non-empty string; fail otherwise.
client_send = "<; ${if and{\
{!eq{$tls_out_cipher}{}}\
{!eq{PASSWDLINE}{}}\
}\
{}fail}\
; ${extract{1}{::}{PASSWDLINE}}\
; ${sg{PASSWDLINE}{\\N([^:]+:)(.*)\\N}{\\$2}}"
.endif
Сохраните изменения и закройте файл.
Чтобы изменения вступили в силу, перезагрузите почтовый сервис:
sudo /etc/init.d/exim4 restart
Чтобы проверить корректность настроек, отправляем тестовое письмо:
echo «Testing our Exim» | mail -s Test example@example.com
На ваш почтовый адрес, через который вы отправляете письма, может прийти письмо о небезопасном приложении, для корректной работы необходимо включить доступ для ненадежных приложений.
Исчточник: https://1cloud.ru/help/linux/nastrojka-exim4
Leave a Reply