====== Отправка почты из консоли с помощью s-nail ======
{{:linux:mail:s-nail_logo.jpg?nolink |}}
S-nail почтовый агент командной строки (mail user agent (MUA) или реже message user agent). Проще говоря консольный почтовый клиент.
Эволюция программы довольно интересная: mail → mailx → s-nail → s-mailx. Можно почитать [[https://heirloom.sourceforge.net/mailx_history.html|здесь]].
Интересный факт - в английском языке даже есть выражение [[https://ru.wikipedia.org/wiki/Snail_mail_(выражение)|snail mail или "улиточная почта"]]
===== Примеры использования =====
Пример пока будет только один - bash скрипт вызывает s-nail на каком-то событии.
echo "❌ ARCHIVE failed on $HOSTNAME ($MYIP)" | s-nail -s "🔔 Backup FAILED on [$HOSTNAME]" -r "bak@rtfm.wiki" -S smtp="relay.rtfm.wiki:2525" dx@rtfm.wiki batman@rtfm.wiki
Через echo передаю тело сообщения, а дальше
* -s заголовок письма
* -r адрес отправителя
* -S сервер smtp и порт
* в конце получатель
⚠️ Пример для отправки через SMTP Gmail/Yandex пришлось вынести в отдельную заметку - [[linux:mail:s-nail_googe_yandex|s-nail: настройка для google и yandex]]
===== Ошибки =====
==== Warning: variable superseded or obsoleted ====
s-nail: Warning: variable superseded or obsoleted: smtp
s-nail: Obsoletion warning: please do not use *smtp*, instead assign a smtp:// URL to *mta*!
s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
s-nail: Please read the manual section "On URL syntax and credential lookup"
Например в этом случае вместо
smtp="relay.rtfm.wiki:2525"
в новых версиях s-nail надо использовать теперь
smtp://relay.rtfm.wiki:2525
В changelog я этих изменений не вижу, но формат описан в [[http://www.sdaoden.eu/code-nail.html#13|On URL syntax and credential lookup]].
==== s-nail: Cannot find a usable character set ====
Ошибка:
s-nail: Cannot find a usable character set to encode message: No such entry, file or directory
s-nail: . . . message not sent
UTF-8! Надо проверить нет ли в файле символы отличных от ASCII. Это необязательно будут emoji, как в моём примере выше.
Проверяем
grep --color='auto' -P -n "[^\x00-\x7F]" /home/rtfm/file.sh
Решение: добавить в файл ''/etc/s-nail.rc''
set ttycharset=utf-8
set charset-8bit=utf-8
Или в файл ''/etc/mail.rc'' если используется **mailx**
Подробности в [[https://manpages.debian.org/stretch/s-nail/s-nail.1.en.html|debian man pages]]
{{tag>linux mail mailx s-nail s-mailx почта}}