Настройка EXIM4 для отправки почтовых сообщений в Linux

Инструкция по настройке агента пересылки почтовых сообщений Exim4 на виртуальных серверах под управлением операционных систем семейства Linux.

Что это такое?

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 для начала настройки.

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 - этот вариант подходит для серверов не подключенных к сети Интернет. Сообщения принимаются и доставляются только для локальных доменов, т.е. отправка на удаленные (внешние) домены не поддерживается.

General Type

Здесь введите имя хоста или ваше доменное имя.

System mail name

Нажмите Ok.

OK

Введите адрес локальной петли, если exim будет использоваться только локальными сервисами. Оставьте поле пустым, для прослушивания всех интерфейсов, или перечислите нужные через символ “;”.

IP-adresses

Следующее поле оставьте пустым при отсутствии локальных доменов.

Примечание: при наличии локальных доменов их можно указать, по умолчанию все локальные домены будут обрабатываться одинаково.

Other destinations

На следующем шаге укажите список доменов, для которых Exim будет ретранслировать сообщения, выполняя роль Smarthost`а. Если сервер не должен быть smarthost для другого хоста, оставьте этот список пустым.

mail for

Здесь укажите адрес используемого smtp-сервера:

smtp.yandex.ru::587
smtp.gmail.com::587
mail.example.com::587

smarthost

На следующий вопрос ответьте No, если необходимо скрыть локальное имя сервера.

No

Нажмите Ok.

OK

В обычном режиме работы Exim выполняет поиск DNS при запуске, а также при получении или доставке сообщений. Этот параметр следует выбрать, если в системе используется Dial-on-Demand. Если сервер всегда имеет доступ к Интернету, этот параметр должен быть отключен.

No

Выберете место хранения почты: в каталоге /var/mail или в домашней директории для каждого пользователя.

mbox format

На вопрос о разделении файла конфигурации на маленькие - ответьте Yes. Так будет более удобно конфигурировать exim4 далее.

Yes

Далее необходимо добавить данные о почтовом ящике, с которого будет происходить отправка почты. Для этого, с помощью текстового редактора, например 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

На ваш почтовый адрес, через который вы отправляете письма, может прийти письмо о небезопасном приложении, для корректной работы необходимо включить доступ для ненадежных приложений.

Заблокирована попытка входа в аккаунт

 

Средняя оценка: 5,0, всего оценок: 1