Настройка SMTP в Postfix для FreePBX Distro

Опубликовано в Asterisk

FreePBX SMTP Postfix

Систематически очень важно принимать на электронную почту уведомления о сбоях, статистику по вызовам, принятые факсы и вообще состояние системы. Для этого во FreePBX немало встроенных модулей и механизмов, но практически все используют команду sendmail без авторизации на почтовом SMTP сервере, и все наши уведомления и письма, прямиком улетают в спам, или не проходят фильтры почтовых серверов. Для решения этой проблемы целесообразно использовать аутентификацию SMTP. Для нашего примера мы будем использовать учетную запись от почтовика gmail. В системе уже стоит сконфигурированный почтовый сервер Postfix.

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

SMTP gmail

Пропишем учетные данные gmail в наш почтовый сервер. Замените smtp_user и smtp_passwd вашим логином и паролем Gmail и выполните следующую команду:

echo "smtp.gmail.com smtp_user:smtp_passwd" > /etc/postfix/sasl_passwd

Создаем хеш файл, потому как пароль не храниться в открытом виде, следующая команда создаст файл с именем sasl_passwd.db в директории /etc/postfix/:

postmap hash:/etc/postfix/sasl_passwd

Далее необходимо добавить настройки подключения в файл /etc/postfix/main.cf. В нашем случае предполагается, что корневые сертификаты OpenSSL, расположены в /etc/pki/tls/certs/ca-bundle.crt поэтому:

nano /etc/postfix/main.cf
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
 
smtp_tls_security_level = secure
smtp_tls_mandatory_protocols = TLSv1
smtp_tls_mandatory_ciphers = high
smtp_tls_secure_cert_match = nexthop
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
relayhost = smtp.gmail.com:587

Рестартуем наш почтовый сервер:

service postfix restart

Смотрим логи работы сервера:

tail /var/log/maillog

И делаем тестовую отправку, сообщения на указанный ящик:

mail -s test mail@yandex.ru < /dev/null
yum install mailx

Для изменения имя хоста сервера hostname в CentOS:

nano /etc/sysconfig/network
...
HOSTNAME=www.example.com
...

После выполняем команду:

#hostname www.example.com

Далее открываем фал /etc/hosts и редактируем или добавляем строку:

127.0.0.1 www.example.com localhost localhost.localdomain

И реcстартуем сеть:

/etc/init.d/network restart

Если вам не очень хочется разбираться с данными настройками можно купить коммерческий модуль SysAdmin Pro для FreePBX с данным функционалом на борту, либо оплатить работу интеграторов, за решения данного вопроса.

Коментарии: