¬аш вопрос св€зан с хэштэгами #“елефони€, #FreePBX и Asterisk, #»нструкции? —просите в Telegram!

“елефони€FreePBX и Asterisk»нструкции

Postfix: настройка отправки почты в Asterisk

” ¬ас есть непрочитанное сообщение от IP - ј“—

ћерион Ќетворкс

ƒорогой читатель! IP Ц ј“— Asterisk использует e-mail сообщени€ дл€ отправки уведомлений о различных событи€х: голосова€ почта, факс, доступные обновлени€ модулей, технические проблемы и много других информативных нотификаций. Ђ»з коробкиї, дл€ отправки почты используютс€ внутренние механизмы, но что если мы хотим вписать Asterisk в почтовый домен? ƒл€ решени€ данного вопроса можно прибегнуть к двум методам:

  1. ѕриобретение модул€ System Admin Pro за $25 (на 26 сент€бр€ стоимость составл€ет 1 425 рублей) и настройка SMTP с помощью удобного графического интерфейса FreePBX;
  2. Ќастройка встроенного почтового сервера Postfix через консоль сервера. Ёто бесплатно :)

ћы не ищем легких путей, поэтому, в статье расскажем как настроить Postfix дл€ отправки почтовых уведомлений IP Ц ј“—. ¬ качестве примера рассмотрим настройку яндекс. ѕочты дл€ домена и общий случай.


Ќастройка яндекс. ѕочты

ѕодключаемс€ к консоли нашего сервера IP Ц ј“— через SSH под пользователем root. ќткрываем дл€ редактировани€ файл конфигурации Postfix:

[root@asterisk]# vim /etc/postfix/main.cf

Ќажимаем Ђќї дл€ редактировани€ и добавл€ем в него следующую конфигурацию (предварительно удалив комментарии):

smtp_sasl_auth_enable = yes //включаем SMTP аутентификацию дл€ SMTP - демона
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd //указываем Postfix путь дл€ файла, в котором хран€тс€ пароль и логин дл€ авторизации на 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 = asterisk.merionet.ru //хостнейм вашего сервера
mydomain = merionet.ru //домен сервера
myorigin = $mydomain //в данном случае, при отправлении первоначального письма от пользовател€ root, email адрес отправител€ будет root@merionet.ru (в последствие будет заменен согласно правилам переменной smtp_generic_maps)
mynetworks = 127.0.0.0/8 //авторизованна€ часть сети. ƒл€ отправки почты от AsteriskТа оставьте данную настройку как есть
relayhost = [smtp.yandex.ru]:465 //SMTP яндекс

ѕо окончанию настроек нажимаем :x! и Enter. Ќачнем конфигурировать файлы, к которым мы указали ссылки в конфигурации main.cf. ќткрываем файл /etc/postfix/sasl_passwd :

[root@asterisk]# vim /etc/postfix/sasl_passwd

”казываем там следующие параметры:

[root@asterisk]# 
[smtp.yandex.ru] логин:пароль

¬ качестве логина и парол€ используютс€ реквизиты доступа к настраиваемому почтовому адресу. Ќажимаем :x! и Enter. “еперь поработаем с файлом sender_relay:

ќбратите внимание, что если ¬ы производите почту дл€ домена от яндекс. ѕочты, в поле логин нужно указывать полностью почтовый €щик.
[root@asterisk]# vim /etc/postfix/sender_relay

¬носим следующую конфигурацию:

[root@asterisk]# @домен [smtp.yandex.ru]
пользователь@домен [smtp.yandex.ru]

ƒл€ корректной настройки, советуем предварительно перепроверить им€ хоста командой hostname, отбросив хостовую часть и точно определив домен. “ак же, в качестве отправител€, ¬ы можете добавить строчку asterisk@домен [smtp.yandex.ru]. —охран€ем изменени€ указанным ранее способом.

»дем дальше и приступаем к работе с файлом canonical:

[root@asterisk]# vim /etc/postfix/canonical 

ƒобавл€ем:

@домен  настраиваемый_почтовый_€щик

¬ данной настройке мы подсказываем ѕостфиксу, что отправл€ть почту с нашего домена нужно через настраиваемый почтовый €щик. —охран€ем изменени€. ѕереходим к настройке generic:

[root@asterisk]# vim /etc/postfix/generic

«десь мы будем подмен€ть адрес отправител€. Ёто очень важно поле, так как по умолчанию, в письмо в поле From: будет подставл€тьс€ значение пользователь@домен. «аполн€ем:

root настраиваемый_почтовый_€щик 
root@localhost настраиваемый_почтовый_€щик 
root@localhost.localdomain настраиваемый_почтовый_€щик 
root@freepbx настраиваемый_почтовый_€щик 
root@freepbx.localdomain настраиваемый_почтовый_€щик 
asterisk настраиваемый_почтовый_€щик 
asterisk@localhost настраиваемый_почтовый_€щик 
asterisk@localhost.localdomain настраиваемый_почтовый_€щик 
asterisk@freepbx настраиваемый_почтовый_€щик 
asterisk@freepbx.localdomain настраиваемый_почтовый_€щик

—охран€ем изменени€ :x!. √отово, теперь необходимо выполнить команду:

[root@asterisk ~]# postmap /etc/postfix/generic && postmap /etc/postfix/canonical && postmap /etc/postfix/sender_relay && postmap /etc/postfix/sasl_passwd 

» затем перезагружаем Postfix:

[root@asterisk ~]# service postfix restart
Shutting down postfix:                                  [  OK  ]
Starting postfix: :                                     [  OK  ]

¬ыполн€ем проверку. ќтправьте тестовое пустое письмо на свой личный почтовый €щик:

[root@asterisk ~]#  mail -s "Postfix Test with Yandex" ваш_email < /dev/null

 ак результат, получаем письмо на адрес электронной почты:

Postfix: настройка отправки почты в Asterisk

ќбщий случай настройки Postfix

¬ыше мы рассмотрели частный случай настройки яндек.ѕочты дл€ домена. ƒавайте пошагово рассмотрим настройку любого другого SMTP:

  1. ѕодключаемс€ по SSH к консоли сервера
  2. ќткрываем файл /etc/postfix/main.cf
    • добавл€ем relayhost = [ip Ц адрес SMTP сервера]
  3. ¬ыполн€ем команду service postfix restart
  4. ќткрываем файл /etc/postfix/sasl_passwd
    • добавл€ем запись вида [ip Ц адрес SMTP сервера] логин:пароль
  5. ƒаем команду postmap hash:/etc/postfix/sasl_passwd
  6. —нова открываем файл /etc/postfix/main.cf
    • добавл€ем
      smtp_sasl_auth_enable = yes
      smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
      smtp_sasl_security_options =
      smtp_generic_maps = hash:/etc/postfix/generic
      
  7. ¬ыполн€ем команду service postfix restart
  8. ќткрываем файл /etc/postfix/generic
    • добавл€ем в него строчки, которые добавили на этапе настройки яндекс.ѕочты:
      root настраиваемый_почтовый_€щик 
      asterisk настраиваемый_почтовый_€щик 
      Е.
      
  9. ¬ыполн€ем команду postmap /etc/postfix/generic
  10. ¬ыполн€ем команду service postfix restart

¬озможные ошибки

ѕосле команды тестовой отправки почты смотрим лог:

[root@asterisk ~]# tail -f /var/log/maillog

≈сли наблюдаете ошибку вида 503 5.5.4 Error: send AUTH command first. , то она означает, что email с которого мы пытаемс€ отправить сообщение отбиваетс€ SMTP сервером (как правило, это видно в выводе лога в поле from=<>). ¬ таком случае, проверьте корректность настроек файла /etc/postfix/generic.

≈сли в логах обнаружили ошибку warning: SASL authentication failure: No worthy mechs found, то вам необходимо установить механизм аутентификации SASL (Simple Authentication and Security Layer). —делать это можно с помощью команды ниже:

[root@asterisk ~]# yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain

≈сли на этапе отладки ¬ы получаете ошибку вида bash: mail: команда не найдена, то ¬ам необходимо установить Unix утилиту mailx. —делать это можно с помощью этой команды:

[root@asterisk ~]# yum install mailx

ѕолезна ли ¬ам эта стать€?

–аз в неделю мы отправл€ем дайджест с самыми интересными стать€ми.

P.S. ≈сли укажите свою дату рождени€, то мы об€зательно ¬ас поздравим и подарим небольшой подарок :)

Ќажима€ на кнопку "ѕодписатьс€", вы даете согласие на обработку своих персональных данных