Наши партнеры

UnixForum





Библиотека сайта 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 вам придется перейти по адресу http://www.google.com/settings/security/lesssecureapps и активировать опцию "Access for less secure apps" таким образом, как показано на иллюстрации ниже.

Думаю, что другие почтовые службы также требуют выполнения аналогичных действий из-за повсеместного использования механизмов обеспечения безопасности пользовательских почтовых ящиков. Вам придется выполнить дополнительные действия, если вы используете двухфакторную авторизацию.

2. Установка и настройка sSMTP

На следующем шаге нужно установить агент передачи сообщений (Message Transfer Agent - MTA), в нашем случае sSMTP, который может лишь отправлять сообщения электронной почты, но не принимать их.

Команда для установки 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.

Надеюсь, что вам пригодилась информация из данной статьи, хотя она и не была слишком подробно изложена, а сама статья получилась достаточно короткой. В любом случае, оставляйте сообщения со своими советами, вопросами или мнениями. Удачи!