Postfix (SMTP)
Другой пример
Ставим необходимые пакеты:
# yum -y install postfix cyrus-sasl-plain mailx
# Добавляем в /etc/postfix/canonical указание через какой аккаунт отправлять почту:
/.+/ noreply@example.com
Добавляем в /etc/postfix/mailpasswd логин и пароль релей-хостов:
[mx.example.com] SMTP_USER@example.com:SMTP_PASSWORD
Добавляем в /etc/postfix/sender_relay привязку доменов и конкретных отправителей к внешним службам:
@example.com [mx.example.com]
Добавляем блок в /etc/postfix/main.cf:
relayhost = [mx.example.com]
# Включение аутентификации на стороне клиента
smtp_sasl_auth_enable = yes
# Указывает на файл, в котором хранится база связок логин/пароль
smtp_sasl_password_maps = hash:/etc/postfix/mailpasswd
# Опции SASL. noanonymous указывает на запрет анонимной аутентификации
smtp_sasl_security_options = noanonymous
# Задает плагин SASL для аутентификации
smtp_sasl_type = cyrus
# Перечисляет механизмы проверки пользователя и пароля
smtp_sasl_mechanism_filter = login
# Включает зависящую от отправителя аутентификацию, отключает кэширование SMTP-соединения
smtp_sender_dependent_authentication = yes
# Указание на список адресов и почтовых серверов, через которые нужно отправлять письма на эти адреса
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
# Добавляет для домена указание через какой аккаунт отправлять почту
sender_canonical_maps = hash:/etc/postfix/canonical
# Добавляет отправку почты админу на внешний ящик
smtp_generic_maps = hash:/etc/postfix/generic
# Указывает, использовать ли TLS для SMTP
smtp_use_tls = yes
Редактируем параметр sendmail_path в /etc/php.ini:
sendmail_path = /usr/sbin/sendmail -t -i -f noreply@example.com
Генерируем индексированные файлы:
postmap /etc/postfix/generic
postmap /etc/postfix/canonical
postmap /etc/postfix/mailpasswd
postmap /etc/postfix/sender_relay
Добавляем в автозагрузку и запускаем сервис:
service php-fpm restart
systemctl enable postfix
systemctl start postfix
# проверка
echo "Test message" | mail -s "Test subject" -a "From: Test <noreply@example.com>" test@example.com
Last updated