Отправка почты через консоль с авторизацией и без

Существует множество случаев, когда может потребоваться только отправка почты на ваш технический email. Вот отдельные примеры:

  • У вас настольный компьютер, но вы хотите использовать такие программы как Zabbix, send-pr, статус RAID массивов или ваши самописные скрипты. Для пересылки почты вам потребуется использовать почтовый сервер провайдера.
  • Ваш компьютер является сервером, где почта не хранится локально, необходима только переправка всей почты на вашу внешнюю электронную почту. То есть нужно пересылать все системные уведомления сервера к вам на почту.

Практически любой MTA способен работать и в этих условиях. К сожалению, может быть очень сложно правильно настроить полноценный MTA для работы только с исходящей почтой. Такие программы, как sendmail, exim и postfix слишком избыточны для этих целей. К тому же, если вы используете обычные средства доступа в интернет, условий для запуска "почтового сервера" может быть недостаточно.

Я в своей практике предпочитаю использовать Postfix. Для решения нашей задачи отправки системных уведомлений (или результат работы скриптов существует 2 варианта.

Первый вариант, когда у вас есть свой почтовый сервер (и доступ к его администрированию) или ваш провайдер предоставил почтовый сервер для пересылки почты, тогда вам сюда Postfix в роли cистема-спутник - пересылка системных сообщений на smart-host (релей для исходящей почты).

Второй вариант, когда ничего нет, а есть только сервер с реальным IP, желание и бесплатный почтовый ящик (gmail, яндекс почта и так далее). В зависимости от почтового провайдера - у вас будут свои пляски с бубном. В примере ниже, я использовал бесплатный почтовый email на виртуальном тарифе (обычный Shared хостинг) TimeWeb.

Инсталлируем Postfix в режиме Local Only. Проверяем, чтобы запускался только на localhost иначе он превратиться в открытый почтовый релей (open mail relay), что очень порадует спамеров.

apt install postfix mailutils
 
lsof -i:25
 
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
master  7180 root   13u  IPv4  48116      0t0  TCP localhost:smtp (LISTEN)
master  7180 root   14u  IPv6  48117      0t0  TCP localhost:smtp (LISTEN)

Ставим Postfix и у нас появляется команда newaliases, которую нужно использовать после любых изменений в файле /etc/aliases. Указываем в файле /etc/aliases на какую почту будем пересылать сообщения от root, например так root: vasya@example.com, подробный синтаксис в описании команды newaliases. Запускаем команду newaliases и пробуем отослать тестовое письмо:

newaliases
 
echo "hello from `hostname` `uptime` `who -q`" | mail -s "`hostname`" root  && tail -F /var/log/mail.log

Всё, работает! Удачи. Будут вопросы пишите в контакты.

Настройку sSMTP и подобных приложений для отправки почты с сервера я использую в только в случае, когда экономия превысила все возможные разумные пределы!

Да, sSMTP можно и нужно настраивать просто на пересылку, без указания почтового логина и пароля. Но тогда мне проще настроить Postfix по инструкции выше.

sSMTP Debian, Ubuntu:

apt install ssmtp

sSMTP FreeBSD:

Простейшим способом удовлетворить имеющиеся потребности может быть установка порта mail/ssmtp. Выполните под root следующие команды:

cd /usr/ports/mail/ssmtp
make install replace clean

После установки потребуется настроить mail/ssmtp с помощью файла из четырех строк, расположенного в /usr/local/etc/ssmtp/ssmtp.conf:

root=yourrealemail@example.com
mailhub=mail.example.com
rewriteDomain=example.com
hostname=_HOSTNAME_

Убедитесь, что используете существующий почтовый адрес для root. Введите сервер вашего провайдера для пересылки исходящей почты вместо mail.example.com (некоторые провайдеры называют его сервером исходящей почты или SMTP сервером). Установка ssmtp таким способом позволит правильно работать любым программам на вашем компьютере, которым требуется отправка почты, но не нарушит политику вашего провайдера и не позволит вашему компьютеру быть использованным спамерами.

PQ VPS сервера в 28+ странах.