- Отправить электронную почту в Linux из командной строки
- Linux Отправка электронной почты из командной строки
- 1. Использование почтовой команды
- Тестирование почтовой команды
- 2. С помощью команды mailx
- Тестирование команды Mailx
- 3. Использование команды MUTT
- Тестирование команды Mutt
- 4. Использование команды mpack
- Тестирование команды mpack
- 5.Использование sendmail
- Тестирование команды sendmail
- Резюме
- Отправка почты из командной строки (консоли) Linux
- Отправить сообщение другому пользователю на сервере в Unix/Linux
- Отправить сообщение другому пользователю на сервере в Unix/Linux
- -=== СПОСОБ 1 — Используем echo команду ==-
- -=== СПОСОБ 2 — Используем write команду ==-
- -=== СПОСОБ 3 — Используем wall команду ==-
Отправить электронную почту в Linux из командной строки
В этой статье вы узнаете, как отправлять электронные письма с помощью популярных почтовых команд. Не менее важно, чтобы вы также научились отправлять вложения электронной почты Linux. Некоторые из используемых параметров командной строки:
- -s: обозначает тему письма
- -a: для обозначения вложения
- -c: для копии адреса электронной почты (CC)
- -b: адрес электронной почты для скрытой копии (BCC)
Linux Отправка электронной почты из командной строки
Мы узнаем о следующих командах для отправки электронных писем в Linux.
1. Использование почтовой команды
Почтовая команда Linux довольно популярна и обычно используется для отправки электронных писем из командной строки. Почта устанавливается как часть пакетов mailutils и mailx в системах Debian и Redhat соответственно. Две команды обрабатывают сообщения в командной строке. Чтобы установить mailutils в системах Debian и Ubuntu, запустите:
$ sudo apt install mailutils -y
Для дистрибутивов CentOS и RedHat запустите:
Тестирование почтовой команды
Если команда mail успешно установлена, протестируйте приложение, используя следующий формат, и нажмите клавишу ввода:
$ mail –s "Test Email" email_address
Замените email_address своим адресом электронной почты. Например,
$ mail –s "Test Email" james@example.com
$ echo "sample message" | mail -s "sample mail subject" email_address
$ echo "Hello world" | mail -s "Test" james@example.com
$ mail -s "subject" -A message.txt email_address
Флаг -A определяет вложение файла. Например;
$ mail -s "Important Notice" -A message.txt james@example.com
$ mail –s "test header" email_address email_address2
2. С помощью команды mailx
Mailx — это более новая версия команды mail, которая ранее называлась nail в других реализациях. Mailx существует с 1986 года и был включен в POSIX в 1992 году. Mailx является частью составного почтового пакета Debian, используемого для различных сценариев. Эту почтовую утилиту могут использовать пользователи, системные администраторы и разработчики. Реализация mailx также имеет ту же форму, что и синтаксис командной строки почты. Чтобы установить mailx в системах Debian/Ubuntu, выполните:
Чтобы установить mailx в RedHat и CentOS, выполните:
Тестирование команды Mailx
Вы можете использовать команду echo для направления вывода команде mail без запроса CC и тела сообщения, как показано здесь:
$ echo "message body" | mail -s "subject" email_address
$ echo "Make the most out of Linux!" | mail -s "Welcome to Linux" james@example.com
3. Использование команды MUTT
Mutt — это легкий почтовый клиент командной строки для Linux. В отличие от команды mail, которая может выполнять базовые действия, mutt может отправлять вложенные файлы. Mutt также читает электронную почту с серверов POP/IMAP и подключается к локальным пользователям через терминал. Чтобы установить mutt в системах Debian/Ubuntu, запустите:
Чтобы установить mutt в системах Redhat/CentOS, запустите:
Тестирование команды Mutt
Вы можете отправить пустое сообщение, используя mutt, с сразу после адреса электронной почты.
$ mutt -s "Test Email" email_address < /dev/null
$ mutt -s "Greetings" james@example.com < /dev/null
$ echo "Message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- email_address
$ echo "Hey guys! How's it going ?" | mutt -a report.doc -s "Notice !" -- james@jaykiarie.com
4. Использование команды mpack
Команда mpack используется для кодирования файла в сообщения MIME и отправки их одному или нескольким получателям или даже для публикации в разных группах новостей. Чтобы установить mpack в системах Debian/Ubuntu, выполните:
Чтобы установить mpack в системах Redhat/CentOS, выполните:
Тестирование команды mpack
Использование mpack для отправки электронной почты или вложения через командную строку так же просто, как:
$ mpack -s "Subject here" -a file email_address
$ mpack -s "Sales Report 2019" -a report.doc james@jaykiarie.com
5.Использование sendmail
Эта команда — еще один популярный SMTP-сервер, используемый во многих дистрибутивах. Чтобы установить sendmail в системах Debian/Ubuntu, выполните:
$ sudo apt install sendmail
Чтобы установить sendmail в системах RedHat/CentOS, выполните:
$ sudo yum install sendmail
Тестирование команды sendmail
Вы можете использовать следующие инструкции для отправки электронной почты с помощью команды sendmail:
Например, я создал файл report.doc со следующим текстом:
Команда для отправки сообщения будет,
Резюме
Хотя клиенты электронной почты с командной строкой намного проще и требуют меньше вычислений, вы можете использовать их только для отправки электронной почты на личные домены электронной почты, а не на домены Gmail или Yahoo, поскольку требуется дополнительная аутентификация. Кроме того, вы не можете получать электронные письма с внешних SMTP-серверов. Как правило, намного проще использовать почтовые клиенты с графическим интерфейсом, такие как Thunderbird или Evolution, чтобы избежать проблемы с недоставленными электронными письмами.
Отправка почты из командной строки (консоли) Linux
21.04.2021
VyacheslavK
CentOS, Linux, Ubuntu
комментария 4
В данной статье мы рассмотрим основные утилиты для отправки электронных писем по SMTP из консоли Linux – mail/mailx/mutt. Данная инструкция применима ко всем современным дистрибутивам Linux.
Для отправки почты из командной строки Linux вам нужно установить Mail User Agent, которые умеет подключаться к smtp серверам для отправки и получения почты.
В первую очередь рассмотрим утилиту mail (mailx). Для ее установки, выполните:
Mailx содержит в себе несколько утилит для работы с почтой, мы же подробно остановимся на mail.
Обратите внимание, что на вашем хосте обязательно должен быть установлен какой-нибудь почтовый сервер. Например, postfix или sendmail:
Основные опции при отправке писем:
Чтобы отправить простое сообщение из консоли Linux, воспользуйтесь командой:
# echo "Это тестовое письмо" | mail -s "Проверка отправки почты" [email protected]
Проверьте, что письмо доставлено в ящик.
Если вам нужно посмотреть подробные логи отправки писем по SMTP, их можно посмотреть в файле:
Без указания дополнительных опций письмо отправляется с дефолтного почтового ящика и скорее всего будет помечено как спам в большинстве популярных почтовых сервисах.
Чтобы указать другого отправителя письма (mail from), используйте ключ -r:
# echo "Это тестовое письмо 2" | mail -s "Проверка отправки почты 2" -r [email protected] [email protected]
Если нужно отправить письмо нескольким получателям, перечислите их через запятую:
# echo "Это тестовое письмо 3" | mail -s "Проверка отправки почты 3" -r ad[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.
При запуске этой команды перед вами появятся список SMTP команд для подключения, авторизации и отправки почты.
Если для отправки нужно использовать TLS шифрование и игнорировать проверку подлинности сертификата сервера, добавьте параметры:
-S smtp-use-starttls
-S ssl-verify=ignore
Чтобы не задавать все параметры в командной строке, вы можете указать их в файле ~/.mailrc. Например, добавьте в этот файл такие строки:
set smtp-use-starttls set ssl-verify=ignore set smtp=smtp://smtp.gmail.com:587 set smtp-auth=login set smtp-auth-u[email protected] set smtp-auth-password=sdf#23ddsH3sq9- set from= [email protected]
Теперь для отправки письма через релей Gmail с аутентификацией достаточно выполнить команду:
$ echo "Test mail " | mail -v -s "Testing gmail auth" [email protected]
Вы можете использовать команду отправки почты для в своих bash скриптом. Например, создайте следующий скрипт, которые будет отправлять вам информацию по свободному месту на дисках:
Добавьте этот скрипт в планировщик 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 скрипты или ватчдоги (удобно для контроля их выполнения).
Предыдущая статья Следующая статья
Отправить сообщение другому пользователю на сервере в Unix/Linux
Отправить сообщение другому пользователю на сервере в Unix/Linux
Так бывает, что на сервере работают и другие пользователи одновременно с вами. Допустим вам, необходимо выполнить перезагрузку ОС так,чтобы другие юзеры не пострадали и успели сохранить свои данные до ребута. Сейчас я расскажу как можно это сделать несколькими способами.
Для начала, посмотрим кто находится в системе:
18:07:26 up 38 days, 6:22, 2 users, load average: 1.22, 1.24, 1.25 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT captain pts/0 159.224.217.24 17:46 1.00s 0.45s 0.00s w captain pts/1 159.224.217.24 17:58 7:05 0.11s 0.11s bash -l
Так же, можно использовать:
captain pts/0 2017-11-18 17:46 00:05 143820 (159.224.217.24) captain pts/1 2017-11-18 17:58 . 145964 (159.224.217.24)
Для примера, я залогинился на сервер дважды от одного и того же юзера.
-=== СПОСОБ 1 — Используем echo команду ==-
Можно отправить сообщение другому пользователю следующим образом:
# echo -e "\033[0;31m Can I reboot this server. OK? \033[0m" > /dev/pts/1
- echo -e «\033[0;31m Can I reboot this server… OK? \033[0m» — Команда.
- /dev/pts/1 — Это открытая сессия пользователя.
PS: Я использую в данном примере подсветку, чтобы можно было сразу ее увидеть и другому пользователю все было понятно.
-=== СПОСОБ 2 — Используем write команду ==-
Так же, можно использовать следующий пример:
Напишите сообщение и отправьте его через нажатие ‘Enter’, и оно будет отправлено в терминал юзера. Используйте Ctrl+D чтобы прервать утилиту write.
Можно написать сообщение в файл (предположим — send_to_user.txt):
И потом, чтобы отправить данное послание, используйте:
$ cat send_to_user.txt | write captain pts/1
Очень простая и полезная тулза.
-=== СПОСОБ 3 — Используем wall команду ==-
Для отправки широковещательного сообщения всем подключенным пользователям, используется команда wall (wall = write to all):
$ wall I will reboot this server at 02:00!
Но данное сообщение будет отправлено только после того, как вы нажмете — Ctrl+D
Можно написать сообщение в файл (предположим — send_to_user.txt):
И потом, чтобы отправить данное послание, используйте:
$ cat send_to_user.txt | wall
Вот и все, статья «Отправить сообщение другому пользователю в Unix/Linux» завершена.