Отправка сообщений в линуксе

Отправить электронную почту в 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, запустите:

Читайте также:  Linux логи подключения устройств

Чтобы установить 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

date

21.04.2021

user

VyacheslavK

directory

CentOS, Linux, Ubuntu

comments

комментария 4

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

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

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

установка mailx в linux

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

Читайте также:  Copy files and create directories in linux

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

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

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

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

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

отправка тестового письма из консоли linux с помощью mail

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

smtp логи отправки в var/log/maillog

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

Чтобы указать другого отправителя письма (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 письма

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

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

лог 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:

Читайте также:  What is terminal for linux

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

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

установка mutt в linux

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

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

отправка тестового письма из mutt

Если вам нужно просто проверить работу удаленного 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» завершена.

Источник

Оцените статью
Adblock
detector