Для настройки сервиса подключаемся к серверу по 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