Инструкция по отправке почты из командной строки Linux

Мы предоставляем услуги удаленного администрирования серверов

Инструкция по отправке почты из командной строки Linux

Обновлено Обновлено: Опубликовано Опубликовано:

Термины по теме: SMTP, Linux, unix shell, Ubuntu, CentOS.

Подготовка

Для начала устанавливаем утилиту для отправки почты. В противном случае мы увидим ошибку mail: command not found.

В Debian / Ubuntu:

apt-get install mailutils

В CentOS / Red Hat:

yum install mailx

Синтаксис

Можно отправить сообщение следующей командой:

echo «Test text» | mail -s «Test title» [email protected]

* в данном примере будет отправлено письмо на электронный адрес [email protected] с темой Test title и телом письма — Test text.

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

tail /var/log/maillog

Примеры использования командной строки для email-отправки

1. Отправка письма с вложением

Для разных типов дистрибутива Linux команды могут отличаться.

а) для CentOS / Red Hat:

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -a /var/log/maillog [email protected]

б) для Ubuntu:

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -a /var/log/maillog -a /var/log/maillog2 [email protected]

… или:

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -A /var/log/maillog -A /var/log/maillog2 [email protected]

* где /var/log/maillog и /var/log/maillog2 — файлы, которые будут прикреплены к письму. Обратите внимание, что обе команды отличаются по регистру опции a и A — все зависит от версии и сборки Linux (в каких-то нужно использовать маленькую, в каких-то — большую). Также обратите внимание, что в примере для Ubuntu мы отправим 2 файла — для этого просто добавляем к команде еще одну опцию прикрепления файла.

2. Несколько получателей

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

echo «Test text» | mail -s «Test title» [email protected],[email protected]

* в данном примере мы отправил письмо на ящики [email protected] и [email protected].

3. Отправка с копией

Отправить копию на адрес [email protected]:

echo «Test copy» | mail -s «Test copy title» [email protected] -c [email protected]

Отправить скрытую копию на адрес [email protected]:

echo «Test hidden copy» | mail -s «Test hidden copy title» [email protected] -b [email protected]

4. Указать отправителя

В CentOS / Red Hat:

echo «Test text» | mail -s «Test title» -r [email protected] [email protected]

В Debian / Ubuntu:

echo «Test text» | mail -s «Test title» [email protected] -aFrom:[email protected]

5. Отправка через другой SMTP сервер

echo «Test text» | mail -s «Test title» -S smtp=»smtp.mail.ru:25″ [email protected]

Однако, если сторонний почтовый сервер работает по шифрованному каналу и требует аутентификацию, необходимо ввести следующее:

echo «Test text» | mail -v -s «Test title» -S smtp=»smtp.admins24.com:587″ -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user=»[email protected]» -S smtp-auth-password=»password» -S ssl-verify=ignore -S nss-config-dir=/etc/pki/nssdb -S [email protected] [email protected]

* где smtp.admins24.com — сервер smtp; 587 — порт для подключения к серверу отправки; smtp-use-starttls указывает на использование шифрования через TLS; smtp-auth=login задает аутентификацию с использованием логина и пароля; smtp-auth-user и smtp-auth-password — соответственно логин и пароль; ssl-verify=ignore отключает проверку подлинности сертификата безопасности; nss-config-dir указывает на каталог с базами nss; from задает поле FROM

Mutt

При возникновении проблем, можно воспользоваться программой mutt. Сначала поставим ее.

а) если используем CentOS / Red Hat:

yum install mutt

б) если используем Ubuntu / Debian:

apt-get install mutt

Теперь можно пользоваться. Синтаксис:

echo «Текст сообщения» | mutt -s «Тема» [дополнительные опции] — <кому отправить>

Примеры использования Mutt

Отправить вложение :

echo «Attachment» | mutt -s «subject» -a /var/log/maillog — [email protected]

* где /var/log/maillog — файл, который будет прикреплен к письму.

Указать отправителя:

echo «Mail From» | mutt -s «subject» -e ‘my_hdr From: Дмитрий <[email protected]>’ — [email protected]

* данной командой mutt отправит письмо от [email protected].