Для настройки сервиса подключаемся к серверу по SSH.

Открываем для редактирования файл конфигурации /etc/postfix/main.cf и добавляем следующие строки:

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_security_options = noanonymous

smtp_sasl_type = cyrus

smtp_sasl_mechanism_filter = login

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

smtp_use_tls = yes

myhostname = freepbx.mycompany.local

mydomain = mycompany.local

myorigin = $mydomain

mynetworks = 127.0.0.0/8

relayhost = [webmail.active.by]:465

Расшифровка по каждой строчке:

smtp_sasl_auth_enable = yes //включаем SMTP аутентификацию
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd //указываем путь к файлу, в котором хранятся пароль и логин авторизации на SMTP
smtp_sasl_security_options = noanonymous //посылаем запрос на авторизацию в открытом виде (нешифрованные логин и пароль)
smtp_sasl_type = cyrus // использование библиотеки Cyrus SASL для аутентификации
smtp_sasl_mechanism_filter = login //предлагаемый SMTP клиентом механизм SASL аутентификации
smtp_sender_dependent_authentication = yes //аутентификация в зависимости от отправителя
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay //указываем переназначать глобальную настройку relayhost. В данном случае мы будет сравнивать домен отправителя и релэй, куда отправлять почту.
sender_canonical_maps = hash:/etc/postfix/canonical //через какой аккаунт отправлять почту с определенного домена
smtp_generic_maps = hash:/etc/postfix/generic //данная настройка указывает на расположение файла с правилами, согласно которым необходимо подменять адрес отправителя письма
smtp_use_tls = yes //используем TLS
myhostname = freepbx.mycompany.local //hostname нашего сервера
mydomain = mycompany.local //домен сервера
myorigin = $mydomain //при отправлении первоначального письма от пользователя root, email адрес отправителя будет root@mycompany.local (в последствие будет заменен согласно правилам переменной smtp_generic_maps)
mynetworks = 127.0.0.0/8 //авторизованная часть сети. Для отправки почты от Asterisk’а оставьте данную настройку как есть
relayhost = [webmail.active.by]:465 //SMTP Active.by

Далее создаем файл /etc/postfix/sasl_passwd и вносим в него следующее:

[webmail.active.by] логин:пароль

Создаем файл /etc/postfix/sender_relay и вносим в него следующее:

@it-crowd.by [webmail.active.by]
mail@it-crowd.by [webmail.active.by]

Указываем в файле /etc/postfix/canonical с какого ящика отправляется почта нашего домена:

@mycompany.local mail@it-crowd.by

Далее в файле /etc/postfix/generic осуществляем подмену отправителя:

root mail@it-crowd.by
root@localhost mail@it-crowd.by
root@localhost.localdomain mail@it-crowd.by
root@freepbx mail@it-crowd.by
root@freepbx.localdomain mail@it-crowd.by
asterisk mail@it-crowd.by
asterisk@localhost mail@it-crowd.by
asterisk@localhost.localdomain mail@it-crowd.by
asterisk@freepbx mail@it-crowd.by
asterisk@freepbx.localdomain mail@it-crowd.by

Все изменения внесены, далее выполняем 2 команды и проверяем работу сервиса:

postmap /etc/postfix/generic && postmap /etc/postfix/canonical && postmap /etc/postfix/sender_relay && postmap /etc/postfix/sasl_passwd

service postfix restart

mail -s “Test Postfix” you_mail@it-crowd.by < /dev/null

Посмотреть очередь

mailq

Принудительно запустить отправку из очереди

mailq -q

Удалить все сообщения из очереди:

postsuper -d ALL

Удалить конкретное сообщение из очереди:

postsuper -d <идентификатор письма>

Перезапустить очередь:

postfix stop

postsuper -r ALL

postfix start

Настройка postfix в FreePBX