Содержание
Отправка почты из консоли с помощью s-nail
S-nail почтовый агент командной строки (mail user agent (MUA) или реже message user agent). Проще говоря консольный почтовый клиент.
Эволюция программы довольно интересная: mail → mailx → s-nail → s-mailx. Можно почитать здесь.
Интересный факт - в английском языке даже есть выражение snail mail или "улиточная почта"
Примеры использования
Пример пока будет только один - bash скрипт вызывает s-nail на каком-то событии.
echo "❌ ARCHIVE failed on $HOSTNAME ($MYIP)" | s-nail -s "🔔 Backup FAILED on [$HOSTNAME]" -r "[email protected]" -S smtp="relay.rtfm.wiki:2525" dx@rtfm.wiki batman@rtfm.wiki
Через echo передаю тело сообщения, а дальше
- -s заголовок письма
- -r адрес отправителя
- -S сервер smtp и порт
- в конце получатель
⚠️ Пример для отправки через SMTP Gmail/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 я этих изменений не вижу, но формат описан в 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
Подробности в debian man pages
Обсуждение