Linux. CentOS 7.4. Postfix. Настройка отправки почты через внешний smtp сервер

Задача: отправка почты через внешний smtp шлюз с авторизацией по логину и паролю.
допустим smtp будет smtp.example.com, порт 587

Установка

yum install postfix cyrus-sasl-plain

Настройка конфига

В файл /etc/postfix/main.cf добавляем

relayhost = [smtp.example.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_tls_loglevel = 1
smtp_always_send_ehlo = yes

inet_protocols = ipv4
inet_interfaces = localhost

Файл с логином и паролем /etc/postfix/private/sasl_passwd

[smtp.example.com]:587 admin@example.com:password123

Создаем Postfix lookup tables

postmap /etc/postfix/private/sasl_passwd

Перезапускаем сервис postfix

service postfix restart

Проверка почты

Через консоль
Установим программу mutt

yum install mutt

Отправляем письмо

echo "test" | mutt -s "subject" nash@e-mail.ru

Через mail() функцию из php файла

<?php
$to = 'nash@e-mail.ru';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: admin@example.com' . "\r\n" .
    'Reply-To: admin@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
if( mail($to, $subject, $message, $headers) ) {
    echo "OK";
} else {
    echo "FAIL";
}

Лог для centos расположен в /var/log/maillog

http://help.ubuntu.ru/wiki/postfix_relay_yandex