Categories: CentOSlinuxUbuntu

Отправка почты из командной строки (консоли) Linux

В данной статье мы рассмотрим основные утилиты для отправки электронных писем по SMTP из консоли Linux – mail / mailx / mutt . Данная инструкция применима ко всем современным дистрибутивам Linux.

Для отправки почты из командной строки Linux вам нужно установить Mail User Agent, которые умеет подключаться к smtp серверам для отправки и получения почты.

В первую очередь рассмотрим утилиту mail ( mailx ). Для ее установки, выполните:

Mailx содержит в себе несколько утилит для работы с почтой, мы же подробно остановимся на mail .

Обратите внимание, что на вашем хосте обязательно должен быть установлен какой-нибудь почтовый сервер. Например, postfix или sendmail:

# yum install sendmail –y

Основные опции при отправке писем:

  • -s — Subject:
  • -c — Cc:
  • -b — BCc:
  • -r — From:

Чтобы отправить простое сообщение из консоли Linux, воспользуйтесь командой:

# echo "Это тестовое письмо" | mail -s "Проверка отправки почты" [email protected]

Проверьте, что письмо доставлено в ящик.

Если вам нужно посмотреть подробные логи отправки писем по SMTP, их можно посмотреть в файле:

# cat /var/log/maillog

Без указания дополнительных опций письмо отправляется с дефолтного почтового ящика и скорее всего будет помечено как спам в большинстве популярных почтовых сервисах.

Чтобы указать другого отправителя письма (mail from), используйте ключ -r :

# echo "Это тестовое письмо 2" | mail -s "Проверка отправки почты 2" -r [email protected] [email protected]

Если нужно отправить письмо нескольким получателям, перечислите их через запятую:

# echo "Это тестовое письмо 3" | mail -s "Проверка отправки почты 3" -r [email protected] [email protected] , [email protected]

Как видите, письмо было отправлено двум получателям. А с помощью ключа -c вы можете отправить копию письма на указанный ящик:

# echo "Это тестовое письмо 4" | mail -s "Проверка отправки почты 4" -r [email protected] -c [email protected]

Если вам нужно прикрепить к письму файл, укажите путь к файлу в параметре –a.

# echo "Файл во вложении" | mail -s "Проверка вложения" -a /root/test.txt -r [email protected] [email protected]

В указанных почтовый ящик должно прийти письмо с вложением. Если нужно отпрравить два или более файлов, добавьте каждый файл через собственный атрибут –a:

# echo "Вложены 2 файла " | mail -s "Вложение нескольких файлов " -a /root/test.txt -a /root/message.log -r [email protected] [email protected]

Вы можете отправить письмо через конкретный SMTP сервер. Его имя и порт подключения указываются в параметре -S smtp= :

# echo "Messages smtp server" | mail -s "Test smtp server" -S smtp="build-centos.ru:25" -r [email protected] [email protected]

Если удаленный SMTP сервер требует авторизации перед отправкой, вы можете указать имя пользователя и пароль с помощью параметров -S smtp-auth-user и -S smtp-auth-password .

# echo "Test auth mailbox" | mail -v -s "Test auth" -S smtp="build-centos.ru:25" -S smtp-auth=login -S smtp-auth-user=" [email protected] " -S smtp-auth-password="password" -S [email protected] [email protected]

При запуске этой команды перед вами появятся список SMTP команд для подключения, авторизации и отправки почты.

Если для отправки нужно использовать TLS шифрование и игнорировать проверку подлинности сертификата сервера, добавьте параметры:

-S smtp-use-starttls
-S ssl-verify=ignore

Чтобы не задавать все параметры в командной строке, вы можете указать их в файле ~/.mailrc . Например, добавьте в этот файл такие строки:
set smtp-use-starttls_x000D_set ssl-verify=ignore_x000D_set smtp=smtp://smtp.gmail.com:587_x000D_set smtp-auth=login_x000D_set [email protected]_x000D_set smtp-auth-password=sdf#23ddsH3sq9-_x000D_ set from= [email protected]

Теперь для отправки письма через релей Gmail с аутентификацией достаточно выполнить команду:

$ echo "Test mail " | mail -v -s "Testing gmail auth" [email protected]

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

#!/bin/bash_x000D_du -h | mail -s "Server 1 disk usage" [email protected]

Добавьте этот скрипт в планировщик cron и вы будете регулярно получать письма с информацией о свободном месте на вашем сервере.

0 0 * * * /home/root/freespace.sh

Еще одна популярная утилита для отправки почты в Linux это mutt :

# sudo apt-get install mutt — для Debian/Ubuntu

# yum install mutt -y — для CentOS/Redhat

Синтаксис mutt такой же, как и у mail/ mailx:

# echo "Text messages mutt" | mutt -s "Test mutt" [email protected]

Если вам нужно просто проверить работу удаленного SMTP сервера, вы можете отправить письмо вручную через telnet .

Таким образом, вы можете легко отправлять письма из командной строки, встраивать отправку email оповещений в свои bash скрипты или ватчдоги (удобно для контроля их выполнения).

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago