Библиотека сайта rus-linux.net
Отправка сообщений электронной почты из командной строки в Linux или OpenWRT
Оригинал: Send mail from command line in Linux or OpenWrt
Автор: Arnab Satapathi
Дата публикации: 28 марта 2017 г.
Перевод: А.Панин
Дата перевода: 25 мая 2017 г.
Вам может понадобиться отправлять сообщения электронной почты из командной строки для отслеживания важных событий, передачи информации о состоянии системы или для чего-либо еще, но очевидно, не для рассылки спама.
В данной статье мы не будем рассматривать процесс установки или настройки SMTP-сервера, а вместо него будем использовать корректно настроенный, безопасный сервер проекта GMail.
Описанная методика отправки сообщений применима практически к каждой UNIX-подобной операционной системе, включая OpenWRT. Что же, приступим к настройке...
1. Настройка учетной записи GMail или какой-либо другой почтовой службы
Так как мы решили отправлять сообщения электронной почты с помощью SMTP-сервера компании GMail, нам, очевидно, понадобится учетная запись GMail. При желании вы можете использовать любую другую почтовую службу, например,
Вам не придется изменять каких-либо параметров учетной записи GMail, за исключением предоставления доступа к почтовому ящику приложениям, которые Google считает "менее безопасными".
После входа в интерфейс GMail вам придется перейти по адресу
Думаю, что другие почтовые службы также требуют выполнения аналогичных действий из-за повсеместного использования механизмов обеспечения безопасности пользовательских почтовых ящиков. Вам придется выполнить дополнительные действия, если вы используете двухфакторную авторизацию.
2. Установка и настройка sSMTP
На следующем шаге нужно установить агент передачи сообщений (Message Transfer Agent - MTA), в нашем случае
Команда для установки sSMTP в Debian или Ubuntu:
sudo apt-get install ssmtp
Команда для установки sSMTP в OpenWRT:
opkg update && opkg install ssmtp ca-certificates
Примечание: вероятно, вам придется переместить корневую файловую систему вашего маршрутизатора на внешний флеш-накопитель, так как необходимая для работы sSMTP библиотека libopenssl
занимает примерно 1.7 МБ.
Файл конфигурации sSMTP, в который вам придется добавить информацию для доступа к почтовому серверу, расположен по пути /etc/ssmtp/ssmtp.conf
.
Пример содержимого этого файла приведен ниже.
mailhub=smtp.gmail.com:587 rewriteDomain=gmail.com hostname=smtp.gmail.com:587 AuthUser=<имя-пользователя>@gmail.com AuthPass=<пароль> FromLineOverride=YES UseTLS=YES USESTARTTLS=YES
Используйте команду man ssmtp.conf
для получения информации обо всех параметрах конфигурации sSMTP.
3. Тестирование отправки сообщений из командной строки
Существует огромное количество утилит с интерфейсом командной строки для отправки сообщений электронной почты на любой вкус.
Команда mail
доступна после установки пакета программного обеспечения mailutils
в дистрибутивах Debian и Ubuntu и может использоваться практически в любом дистрибутиве Linux.
mail -s "System Log" -A /var/log/syslog <имя-адресата>@gmail.com < "test_body"
Вы можете отредактировать эту команду в соответствии со своими потребностями.
Команда mpack
отлично подходит для использования в рамках сценариев.
mpack -s "Syslog @ $(date)" /var/log/syslog <имя-адресата>@gmail.com
В результате будет отправлено сообщение электронной почты с текущей меткой времени адресату, причем файл /var/log/syslog
будет добавлен в это сообщение в качестве вложения.
Команда ssmtp
также может использоваться, если вы готовы вводить текст сообщения самостоятельно.
ssmtp <имя-адресата>@gmail.com
4. Отправка сообщений с помощью команды mailsend (только в OpenWRT)
Команда mailsend
отлично подходит для использования в рамках сценариев и списков задач crond, не требуя настройки агента передачи сообщений, которая описывалась в предыдущем разделе.
1. Для установки mailsend
в OpenWRT вам, скорее всего, также придется перенести корневую файловую систему маршрутизатора на отдельный USB-накопитель.
2. Это пример использования команды для отправки сообщения через порт SMTP -сервера проекта GMail номер 465.
3. А это еще один пример команды, использующей сервер проекта GMail, но на этот раз используется порт номер 587 и аутентификация TLS.
Для получения дополнительной информации следует использовать команды mailsend -help
и mailsend -example
.
Надеюсь, что вам пригодилась информация из данной статьи, хотя она и не была слишком подробно изложена, а сама статья получилась достаточно короткой. В любом случае, оставляйте сообщения со своими советами, вопросами или мнениями. Удачи!