отправка почтового сообщения с русскими буквами в астериске

    Например, если в диалплане есть что-то либо подобное:

same => n,System(echo "Voice message. текст из яндекс: ${TEXT1}" | mailx -a /record/${UNIQUEID}.wav -s "Voice message from (в скобках русские буквы)" $EMAIL)

 

      На почту приходит сообщение с Темой "Voice message from (?? ?????????????? ?????????????? ??????????)", а Тело сообщения как вложение с именем noname. Если пробовать запускать эту команду из консоли все работает, из скрипта тоже. Проблема возникает, если именно запускать из астериска.

 Что говорит гугл:

https://access.redhat.com/solutions/1136493

https://www.claudiokuenzler.com/blog/300/mailx-sends-noname-attachment-instead-of-text-in-mail-body#.WQhsH7MvDrc

На сервере стоит

ii  heirloom-mailx                    12.5-4                         amd64        feature-rich BSD mail(1)

 возможные способы:

1) mailx - поставить mailutils вместо heirloom-mailx   (но они имеют разные флаги, при большом кол-ве сервером придется везде править диалплан, где вызывается system() с командой mail)

2) sendmail (необходимо самому прописывать заголовки, subject, data, в одну строку не получится сделать)

3) mutt (из особенностей - чтобы отправка заработала в астериске, необходима команда sudo mutt)

 

Рабочий вариант:

same => n,System(echo "Voice message. текст из яндекс: ${TEXT1}" | sudo mutt -s "Voice message from (в скобках русские буквы)" $EMAIL -a /record/${UNIQUEID}.wav)

 

 P.S. По умолчанию mutt пытается отправить через локальный почтовый сервер, если идет отправка через яндекс или gmail средствами ssmtp, то необходимо добавить еще:

cat /root/.muttrc
set sendmail="/usr/sbin/ssmtp" # путь к ssmtp
set realname="NoReply" # имя отправителя
set from="noreply\@test.com" # e-mail отправителя
set charset="utf-8"

 

Подробно - здесь https://habrahabr.ru/post/82919/

 

Если не выставить настройку set charset="utf-8", то многие почтовые клиенты не смогут нормально отобразить русский заголовок или тело письма. Заголовок Content-Type будет выглядеть как:

Content-Type: text/plain; charset=unknown-8bit

 При этом почтовый клиент gmail нормально отобразит как тему, так и тело сообщения,  почтовый клиент mail.ru нормально покажет только тему сообщения, вместо тела будет знаки вопроса, другие почтовые клиенты ни тему, ни тело не покажут.

 

Please publish modules in offcanvas position.