Отправка электронной почты с помощью Bash и SSMTP
SSMTP — это инструмент, который доставляет электронную почту с компьютера или сервера на настроенный почтовый хост.
SSMTP сам по себе не является сервером электронной почты, не принимает электронные письма и не управляет очередью.
Одно из его основных применений — пересылка автоматической электронной почты (например, системных предупреждений) с вашего компьютера на внешний адрес электронной почты.
Предварительные условия
Для успешного завершения этого урока вам понадобятся следующие вещи:
Доступ к серверу Ubuntu 18.04 от имени пользователя без полномочий root с привилегиями sudo и активным брандмауэром, установленным на вашем сервере. Чтобы настроить их, обратитесь к нашему Руководству по первоначальной настройке сервера для Ubuntu 18.04.
SMTP-сервер вместе с именем пользователя и паролем SMTP. Это также будет работать с SMTP-сервером Gmail, или вы можете настроить свой собственный SMTP-сервер, выполнив действия, описанные в этом руководстве «Как установить и настроить Postfix в качестве SMTP-сервера только для отправки» на Убунту 16.04
Установка SSMTP
Чтобы установить SSMTP, вам необходимо сначала обновить кэш apt с помощью:
sudo apt update
Затем выполните следующую команду для установки SSMTP:
sudo apt install ssmtp
Еще одна вещь, которую вам нужно будет установить mailutils
, — это выполнить следующую команду:
sudo apt install mailutils
Настройка SSMTP
Теперь, когда вы ssmtp
установили, чтобы настроить его для использования вашего SMTP-сервера при отправке электронной почты, вам необходимо отредактировать файл конфигурации SSMTP.
Откройте файл с помощью вашего любимого текстового редактора /etc/ssmtp/ssmtp.conf
:
sudo nano /etc/ssmtp/ssmtp.conf
Вам необходимо включить конфигурацию SMTP:
root=postmaster
mailhub=<^>your_smtp_host.com<^>:587
hostname=<^>your_hostname<^>
AuthUser=<^>your_gmail_username@your_smtp_host.com<^>
AuthPass=<^>your_gmail_password<^>
FromLineOverride=YES
UseSTARTTLS=YES
Сохраните файл и выйдите.
Отправка электронной почты с помощью SSMTP
После завершения настройки для отправки электронного письма просто выполните следующую команду:
echo "<^>Here add your email body<^>" | mail -s "<^>Here specify your email subject<^>" <^>[email protected]<^>
Вы можете запустить это прямо в своем терминале или включить в свои сценарии bash.
Отправка файла с помощью SSMTP (необязательно)
Если вам нужно отправить файлы в виде вложений, вы можете использовать расширение mpack
.
Для установки mpack
выполните следующую команду:
sudo apt install mpack
Затем, чтобы отправить электронное письмо с вложенным файлом, выполните следующую команду.
mpack -s "<^>Your Subject here<^>" your_file.zip <^>[email protected]<^>
Приведенная выше команда отправит электронное письмо <^>[email protected]<^>
с <^>your_file.zip<^>
вложенным файлом.
Заключение
SSMTP — отличный и надежный способ реализовать функции электронной почты SMTP непосредственно в сценариях bash.
Для получения дополнительной информации о SSMTP я бы рекомендовал проверить официальную документацию здесь .
Last updated