Ubuntu. Настройка Exim4
Отличительная особенность почтовых служб в гибкости их настройки. Существуют конфигурации, когда нет необходимости держать целый почтовый сервер, а достаточно лишь пересылать письма. Рассмотрим как это сделать в Ubuntu.
На помощь приходит Exim4. Exim - Experimental Internet Mailer - агент пересылки сообщений, распространяется под лицензией GPL.
Приступаем.
Обновляем данные о состоянии репозиториев, затем устанавливаем exim4:
sudo apt-get-update
sudo apt-get install exim4
Важно! Если необходимо использование ACL (Access Control List) и прочие дополнительные функции, то следует установить exim4-daemon-heavy.
Теперь настроим exim4. Для этого выполним команду:
sudo dpkg-reconfigure exim4-config
Программа предлагает сделать выбор. Рассмотрим их назначения.
internet site; mail is sent and received directly using SMTP (интернет-сайт; приём и отправка почты напрямую, используя SMTP) - данный вариант подходит для Интернет сайтов, при этом полном доступе к сети Интернет. Служба принимает входящую почту на локальные домены и доставляет пользователям. Отправка почты происходит непосредственно на домены получателя.
mail sent by smarthost; received via SMTP or fetchmail (отправка почты через smarthost; приём по SMTP или через fetchmail) - выбранный нами вариант, применяется для ограниченного доступа к сети Интернет. Входящая почта будет доставлена пользователям, а исходящая сначала доставляется на Smart host и только потом до целевого ящика.
mail sent by smarthost; no local mail (отправка почты через smarthost; локальная почта отсутствует ) - Локальные домены не используются. Все исходящие письма отправляются сразу на Smart host.
local delivery only; not on a network (доставка только локальной почты; доступа к сети нет) - этот вариант следует выбирать, когда у сервера нет подключения к глобальной сети. Доставка почты происходит только между локальными доменами.
Курсорными клавишами выбираем “Отправка почты через smarthost; прием по SMTP или через fetchmail”, в английской локали это будет как “mail sent by smarthost; received via SMTP or fetchmail”. Выбор подтверждаем нажатием по клавише Enter.
Следующим шагом следует указать ваше доменное имя или имя узла.
По окончании нажимаем Enter.
Теперь укажем IP-адреса на которых Exim должен слушать соединения. IP-адреса следует разделять символом “;” - точка с запятой.
Нажимаем Enter.
В обновленном окне указываем локальные домены и почтовые ящики. Поле следует оставить пустым, если у вас нет этого.
Нажимаем Enter.
Следующим шагом указываем список доменов для которых Exim будет пересылать почту выполняя роль Smarthost’а. Если сервер не должен быть Smarthost, то поле нужно оставить пустым.
Нажимаем Enter.
Теперь указываем адреса smtp-сервера и через двойное двоеточие (“::”) smtp-порт.
Пример популярных сервисов:
smtp.yandex.ru::587
smtp.gmail.com::587
mail.example.com::587
Заполнив поле, нажимаем Enter.
Следующим шагом будет вопрос о необходимости скрывать локальные имена сервера. Если нужно - выбираем “Да” (“Yes”).
Настраиваем запросы к DNS. Exim выполняет обращения к DNS при запуске службы, при получении и отправке сообщений. Если соединение к сети ничем не ограничено, то в этом пункте следует выбрать “No” (“Нет”). В противном случае, если используется “Вызов по требованию” (“Deal-on-demand”), то следует выбрать ответ “Да”.
Нажимаем Enter.
Выбираем место хранения почты. Либо это /var/mail, либо в домашнем каталоге пользователя.
Нажимаем Enter.
Для удобства конфигурирования, можно разделить большой файл конфигурации на несколько мелких.
Делаем выбор, нажав Enter.
На этом приложение завершит свою работу.
Настроим данные о почтовом ящике с которого будут уходить письма. Для этого откроем файл /etc/exim4/passwd.client в любом текстовом редакторе:
sudo nano /etc/exim4/passwd.client
В этот файл надо вписать строку с указанием сервера, логина и пароля, разделенные двоеточием.
Например:
Для GMail:
smtp.google.com:<a href="mailto:username@gmail.com">username@gmail.com</a>:user_password
Yandex:
smtp.yandex.ru:username@yandex.ru:user_password
Для собственного SMTP-сервера:
mail.example.com:username@example.com:user_password
Результат будет примерно таким.
Сохраняем.
Так как в самом начале мы не выбирали разделение большого файла на мелкие - отредактируем файл exim4.conf.template:
sudo nano /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
Замените параметры поля “client_send” на свои.
Удаляем из файла следующие строки (находится почти в конце файла):
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
Важно! Мы выполняли настройку для серверов gmail. Для сторонних почтовых адресов надо указывать соответствующие параметры.
Сохраняем внесенные изменения.
Перезапускаем службу:
sudo /etc/init.d/exim4 restart
Отправим письмо самому себе с целью проверки:
echo «Testing our Exim» | mail -s Test <a href="mailto:example@example.com">example@example.com</a>
Гугл пришлет оповещение:
Разрешите это действие в настройках почтового сервиса.