Используемые термины: SMTP , Linux , unix shell , Ubuntu , CentOS .
Как правило, для работы с почтой используются приложения, имеющие доступ к серверу по IMAP/POP3/SMTP. Но иногда, удобно выполнить диагностику или отправить оповещение при работе скрипта из командной строки. Рассмотрим несколько способов и примеров.
Подготовка системы
Синтаксис
Примеры
Простое сообщение
Прикрепить файл
Несколько получателей
Добавить копию-получателя
Задать явно отправителя
Использовать сторонний почтовый MTA
Использование клиента Mutt
Для начала устанавливаем утилиту для отправки почты. В противном случае мы увидим ошибку mail: command not found .
В Debian / Ubuntu:
apt update
apt install mailutils
В CentOS / Red Hat:
yum install mailx
Начиная с RPM 9, mailx был заменен на s-nail:
dnf install s-nail
Можно отправить сообщение следующей командой:
echo «Test text» | mail -s «Test title» master@remontka.com
* в данном примере будет отправлено письмо на электронный адрес master@remontka.com с темой Test title и телом письма — Test text .
Если при отправке возникли проблемы, можно проверить логи следующей командой:
tail /var/log/maillog
Покажем несколько сценариев отправки почты.
Независимо от операционной системы, сообщение отправляется командой:
echo ‘The text of the message’ | mail -s ‘The subject of the message’ master@remontka.com
Для разных типов дистрибутива Linux команды могут отличаться.
а) для CentOS / Red Hat:
echo ‘Attachment’ | mail -s ‘Subject attachment message’ -a /var/log/maillog master@remontka.com
б) для Ubuntu:
echo ‘Attachment’ | mail -s ‘Subject attachment message’ -a /var/log/maillog -a /var/log/maillog2 master@remontka.com
… или:
echo ‘Attachment’ | mail -s ‘Subject attachment message’ -A /var/log/maillog -A /var/log/maillog2 master@remontka.com
* где /var/log/maillog и /var/log/maillog2 — файлы, которые будут прикреплены к письму. Обратите внимание, что обе команды отличаются по регистру опции a и A — все зависит от версии и сборки Linux (в каких-то нужно использовать маленькую, в каких-то — большую). Также обратите внимание, что в примере для Ubuntu мы отправим 2 файла — для этого просто добавляем к команде еще одну опцию прикрепления файла.
Для отправки письма нескольким получателям, просто перечисляем их через запятую:
echo «Test text» | mail -s «Test title» master@remontka.com,shmaster@remontka.com
* в данном примере мы отправил письмо на ящики master@remontka.com и shmaster@remontka.com .
Отправить копию на адрес master2@remontka.com:
echo «Test copy» | mail -s «Test copy title» master@remontka.com -c master2@remontka.com
Отправить скрытую копию на адрес master3@remontka.com:
echo «Test hidden copy» | mail -s «Test hidden copy title» master@remontka.com -b master3@remontka.com
В CentOS / Red Hat:
echo «Test text» | mail -s «Test title» -r postmaster@remontka.com master@remontka.com
В Debian / Ubuntu:
echo «Test text» | mail -s «Test title» master@remontka.com -aFrom:postmaster@remontka.com
а) Для Ubuntu / Debian:
echo «Test text» | mail -s «Test title» -a «Smtp: smtp.mail.ru:25» -a «From: postmaster@remontka.com» -a «Return-path: postmaster@remontka.com» master@remontka.com
б) Для CentOS / Red Hat:
echo «Test text» | mail -s «Test title» -S smtp=»smtp.mail.ru:25″ master@remontka.com
Однако, если сторонний почтовый сервер работает по шифрованному каналу и требует аутентификацию, необходимо ввести следующее:
echo «Test text» | mail -v -s «Test title» -S smtp=»smtp.remontka.com:587″ -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user=»master@remontka.com» -S smtp-auth-password=»password» -S ssl-verify=ignore -S nss-config-dir=/etc/pki/nssdb -S from=postmaster@remontka.com master@remontka.com
* где:
При возникновении проблем, можно воспользоваться программой mutt. Сначала поставим ее.
а) если используем CentOS / Red Hat :
yum install mutt
б) если используем Ubuntu / Debian :
apt update
apt install mutt
Теперь можно пользоваться. Синтаксис:
echo «Текст сообщения» | mutt -s «Тема» [дополнительные опции] — <кому отправить>
1. Отправить вложение:
echo «Attachment» | mutt -s «subject» -a /var/log/maillog — master@remontka.com
* где /var/log/maillog — файл, который будет прикреплен к письму.
2. Указать отправителя:
echo «Mail From» | mutt -s «subject» -e ‘my_hdr From: Дмитрий <postmaster@remontka.com>’ — master@remontka.com
* данной командой mutt отправит письмо от postmaster@remontka.com .
3. Отправка через другой сервер.
Для начала, открываем файл с конфигурацией Mutt:
vi ~/.muttrc
Добавим:
set smtp_url=»smtp://smtp.mail.ru:25″
* в данном примере мы отправим всю нашу почту через узел smtp.mail.ru , порт 25 .
Или при необходимости авторизации на почтовом сервере:
set smtp_url=»smtp://postmaster@remontka.com@smtp.mail.ru:465″
set smtp_pass = password
set ssl_verify_host = no
set ssl_verify_dates = no
set ssl_starttls = no
set ssl_force_tls = yes
* где:
Теперь можно отправлять письмо:
echo «Mail From» | mutt -s «subject» -e ‘my_hdr From: Дмитрий <postmaster@remontka.com>’ — master@remontka.com
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…