Отправка почты из командной строки linux

Использование утилиты MSG

Есть такая замечательная утилита командной строки msg. Что хорошо, вы ей можете пользоваться на любом компьютере, хоть на Windows 8.1. Откройте cmd, желательно от имени администратора и просто введите:

msg

У вас появится справка по утилите. Конструкция команды будет такой MSG {<пользователь> | <имя сеанса> | <ID сеанса> | @<имя файла> | *}

  • <пользователь> Имя пользователя.
  • <имя сеанса> Имя сеанса. Удобно если нужно отправить конкретному сеансу.
  • <ID сеанса> Идентификатор сеанса.
  • @<имя файла> Файл, содержащий список имен пользователей, сеансов или идентификаторов сеансов, которым отправляется сообщение.
  • * Отправить сообщение всем сеансам на указанном сервере.
  • /SERVER:<сервер> Сервер (по умолчанию — текущий).
  • /TIME:<секунд> Интервал ожидания подтверждения от получателя.
  • /V Отображение информации о выполненных действиях.
  • /W Ожидание ответа от пользователя, полезно вместе с /V.
  • <сообщение> Отправляемое сообщение. Если не указано, выдается запрос или принимается ввод из STDIN.

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

Вот так, например в Windows Server 2019 выглядит подобное оповещение на RDS ферме.

Для отправки оповещения на удаленный сервер вы должны использовать вот такую конструкцию:

Для отправки на несколько серверов, можно использовать вот такое построение команды:

invoke-command -computername computer1, computer2 -scriptblock {msg * «Ваш текст сообщения»}

Использование связки PowerShell и msg

(Get-ADComputer -SearchBase «OU=Workstations,DC=root,DC=pyatilistnik,DC=org» -Filter *).Name | Foreach-Object {Invoke-Command -ComputerName $_ {msg * «Текст сообщения»}

Если у вас выскакивает ошибка «Ошибка 1726 при получении имен сеанса» и сообщение не отправляется, то тут вся загвоздка в том, что у той учетной записи от имени которой открыта командная строка, просто не хватает прав. Вам нужно открыть cmd от имени пользователя у кого есть права на тот сервер.

Отправка писем

Разобравшись с предыдущими параметрами мы можем отправить письмо. Дополнительно мы должны указать следующие параметры:

  • UseSsl — так как наше подключение шифруется;
  • From — ящик, с которого отправляется письмо;
  • To — кому отправляем;
  • Subject — тема письма;
  • Body — содержание письма.

В моем случае команда будет выглядеть так:

Данная команда, в случая yandex и многих других, публичных, провайдеров вернет ошибку:

Send-MailMessage : Не удается прочитать данные из транспортного соединения: net_io_connectionclosed.

Эта проблема связана с тем, что библиотека .NET SmtpClient, которая работает с командой Send-MailMessage, может использовать шифрование SSL/TLS только с поддержкой STARTTLS. Стандарт STARTTLS расширял возможности шифрования и должен был стать массовым, но этого не случилось (и скорее всего не случится). Во время публикации стандарта STARTTLS был объявлен новый порт для SMTP — 587(msa), а порт 465 (smtps) объявили устаревшим. Так как новый стандарт так и не приобрел массовость провайдеры, чаще всего, пишут только про 465 порт, но и 587 так же у многих провайдеров работает.

Подводя коротко итог предыдущего абзаца, если провайдер пишет про 465 порт, а он не работает — попробуйте 587. В случае с яндексом это именно так.

Так же, если вам нужно что бы у получателя выводилось ваше имя/название компании, используйте следующий формат во From:

Несколько адресатов

Так же как и в случае обычного почтового клиента мы можем отправлять письма нескольким адресатам используя:

  • To — обычный получатель;
  • Cc — получатель копии;
  • Bcc — получатель скрытой копии.

Если планируется использовать несколько почтовых ящиков, в одном параметре, разделяйте их запятыми:

Кодировка

Как вы знаете Windows пока не перевела работу ОС на UTF8 (используется ANSI и ASCII). В это же время UTF8 является стандартом для работы в интернете. По этой причине, если вы не укажете кодировку, то может получится следующая картина:

Отмечу, что это проблема возникнет в Powershell 5.1, которая установлена по умолчанию в Windows. В случае с Powershell 7.1, по умолчанию используется UTF8. Тем не менее вы можете установить свое значение:

  • ASCII;
  • BigEndianUnicode;
  • Default;
  • OEM;
  • Unicode;
  • UTF7;
  • UTF8;
  • UTF32.

Значения устанавливаются в параметре Encoding:

Отправка письма с разметкой HTML

Письма могут быть посланы как обычный текст или с HTML разметкой. Для разметки дополнительно к параметру Body нужно указать BodyAsHtml:

Вложения

Вложения можно перечислить используя параметр Attachments и пути до файлов:

Этот параметр так же принимает значения через конвейер т.е. мы можем получить все файлы в папке и отправить их:

Уведомления о доставке

Мы можем получить уведомления, если установим следующие параметры у -DeliveryNotificationsOptions:

  • OnSuccess — при успешной доставке;
  • OnFailure — если сообщение не доставлено;
  • Delay — при задержке SMTP сервером.

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

Уведомление будет доставлено на почтовый ящик.

Приоритет

Вы можете установить приоритет, который увидит получатель письма. Отмечу, что такой приоритет отображается не во всех клиентах. Приоритет определяется в параметре Priority со значениями:

  • Normal (по умолчанию)
  • High
  • Low

Рекомендую

Что делать, если посылка на почте, а извещения нет?

В некоторых почтовых отделениях возникают задержки с оповещением о прибытии отправлений. Также не стоит исключать «человеческий фактор», почтальон мог просто перепутать адрес получателя и положить извещение в другой почтовый ящик. В этом случае, если вы видите статус посылки “прибыло в место вручения”, посылку можно забрать, предъявив трекинг-номер и паспорт.

Не так давно Почта России внедрила проект получения посылок на основе «цифровой подписи». В этом случае для получения вашего заказа достаточно просто назвать оператору номер отправления, номер телефона или свою фамилию для идентификации в системе. На номер телефона придет SMS уведомление и посылка будет выдана без заполнения дополнительных документов.

Отправка почты через smtp mail ru

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

А чтобы не перестраивать каждый раз локальные сервер, лучше всего настроить разные профили openserver. Как это сделать показано в видеоуроке Openserver настройка php с помощью профилей.

В этом случае достаточно будет просто загрузить профиль и все настройки, которые были указаны для данного профиля будут доступны после перезапуска сервера. Очень удобная штука и работает очень просто.

Для каждого профиля (совсем не важно как он будет называться), должны быть сделаны свои настройки, если конечно планируется использование разных по своим параметрам скриптов, cms-систем и приложений. Если нет, то можно обойтись и настройками по умолчанию

Что касается SMTP mail ru, то здесь все эдентично.

Меняются данные яндекса на данные mail ru

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

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

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

а) для CentOS / Red Hat:

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -a /var/log/maillog master@dmosk.ru

б) для Ubuntu:

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -a /var/log/maillog -a /var/log/maillog2 master@dmosk.ru

… или:

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -A /var/log/maillog -A /var/log/maillog2 master@dmosk.ru

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

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

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

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

echo «Test text» | mail -s «Test title» master@dmosk.ru,shmaster@dmosk.ru

* в данном примере мы отправил письмо на ящики master@dmosk.ru и shmaster@dmosk.ru.

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

Отправить копию на адрес master2@dmosk.ru:

echo «Test copy» | mail -s «Test copy title» master@dmosk.ru -c master2@dmosk.ru

Отправить скрытую копию на адрес master3@dmosk.ru:

echo «Test n copy» | mail -s «Test n copy title» master@dmosk.ru -b master3@dmosk.ru

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

В CentOS / Red Hat:

echo «Test text» | mail -s «Test title» -r postmaster@dmosk.ru master@dmosk.ru

В Debian / Ubuntu:

echo «Test text» | mail -s «Test title» master@dmosk.ru -aFrom:postmaster@dmosk.ru

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

а) Для Ubuntu / Debian:

echo «Test text» | mail -s «Test title» -a «Smtp: smtp.mail.ru:25» -a «From: postmaster@dmosk.ru» -a «Return-path: postmaster@dmosk.ru» master@dmosk.ru

б) Для CentOS / Red Hat:

echo «Test text» | mail -s «Test title» -S smtp=»smtp.mail.ru:25″ master@dmosk.ru

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

echo «Test text» | mail -v -s «Test title» -S smtp=»smtp.dmosk.ru:587″ -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user=»master@dmosk.ru» -S smtp-auth-password=»password» -S ssl-verify= -S nss-config-dir=/etc/pki/nssdb -S from=postmaster@dmosk.ru master@dmosk.ru

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

Отправка сообщения SMTP командами

Приветствуем сервер:

helo domain.local

В ответ получаем встречное приветствие с кодом 250, например, 250 relay.dmosk.ru.

Вводим адрес, от которого будем отправлять сообщение:

mail from:master@dmosk.ru

В ответ должны получить 250 2.1.0 Ok.

На какой адрес отправляем сообщение:

rcpt to:test@dmosk.ru

Получаем ответ 250 2.1.5 Ok.

Вводим команду:

data

Получим 354 End data with <CR><LF>.<CR><LF> — это означает, что можно вводить текст сообщения:

subject:test subject

test text

Чтобы закончить, с новой строки ставим точку и нажимаем Enter:

В ответ должны увидеть что-то подобное: 250 2.0.0 Ok: queued as A340FC4B70C, где последний код — идентификатор сообщения, присвоенный сервером.

Сообщение отправлено.

Итоговая картина:

220 relay.dmosk.ru ESMTP Postfix
502 5.5.2 Error: command not recognized
helo domain.local
250 relay.dmosk.ru
mail from:master@dmosk.ru
250 2.1.0 Ok
rcpt to:test@dmosk.ru
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject:test subject
test text
.
250 2.0.0 Ok: queued as A5E60C4B70C

Тестовая отправка письма из командной PHP-строки

Проверим, что мы настроили наш сервер для отправки корректно. Переходим в административную консоль Битрикс24 — Инструменты — Командная PHP-строка.

Вводим код:

$headers = «From: info@{$_SERVER}\r\n» .
    «Reply-To: test@{$_SERVER}\r\n» .
    «X-Mailer: PHP/» . phpversion();
if(mail(«master@dmosk.ru», «Письмо для проверки», «Тестовое сообщение», $headers) ) {
    echo «Сообщение отправлено!»;
} else {
    echo «Ошибка! Проверьте настройки почтового сервера и его лог (/var/log/maillog)»;
}

* где master@dmosk.ru — адрес почтового ящика, на который будет отправлено тестовое сообщение.

Нажимаем кнопку Выполнить и подтверждаем во всплывающем окне наши намерения запустить на исполнение скрипт. Мы должны получить ответ: «Сообщение отправлено!». В противном случае, изучаем логи.

В какие сроки надо подготовить ответ

Для частных компаний строгих правил касательно сроков ответа не существует. Рекомендуется ориентироваться на следующие особенности:

  1. Если запрос поступил от государственной структуры, в нем обычно указывается требование предоставить ответ в течение определенного количества дней. Не стоит пренебрегать этим требованием.
  2. Если требование поступило от контрагента и в договоре между сторонами сказано, что при такой ситуации ответ необходимо предоставить в течение конкретного срока, на этот период и стоит ориентироваться.
  3. Во всех остальных ситуациях рекомендуется давать ответ в течение 7 дней или любого разумного срока.

ВАЖНО!
«Разумность» срока определяется исключительно получателем, но ее необходимо связывать с поиском необходимой информации. Например, если письмо касается данных, которые есть в быстром доступе, рекомендуется ответить немедленно

В том же случае, когда приходится поднимать архивные данные за последние три года, понятно, что срок значительно увеличивается.

550 Your message was identified as SPAM

Сообщение означает, что входящее письмо было идентифицировано как спам на основе анализа его содержимого.

Рекомендации отправителю:

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

Если у вас нет контактных данных администратора домена получателя, воспользуйтесь сервисом Whois.

Рекомендации получателю:

Вы можете добавить домен отправителя в белый список, тогда почта с данного домена не будет проверяться спам-фильтром. Чтобы добавить домен example.net в белый список, необходимо:

  • авторизоваться в панели управления, используя номер своего договора и пароль;
  • перейти в раздел Почта;
  • нажать на название почтового домена;
  • перейти в раздел Спам-фильтрБелый список;
  • добавить маску вида *@example.net в блоке Новая маска почтового адреса и нажать кнопку Создать

Отправка почты

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

Пользователи Debian/Ubuntu могут воспользоваться командой apt-get:

# apt-get install mailutils

Пользователи Fedora / CentOS / Red Hat Enterprise Linux (RHEL) могут сделать это с помощью yum:

Теперь команда mail должна быть готова к работе.

Выполните приведенную ниже команду, заменив «user@yourmaildomain.com» на свой адрес электронной почты. Опция s задает тему письма.

$ mail -s «Hello World» user@yourmaildomain.com

Теперь вы можете вводить текст письма. Когда закончите, нажмите «control-D» в начале новой строки.

# mail -s «This is the subject» m00n.silv3r@gmail.com Cc: Hi Silver How are you doing Hope its going fine. Bye

Вы отправили первое письмо из командной строки. Содержимое письма можно вставить из файла.

В некоторых дистрибутивах командная оболочка сначала запросит в интерактивном режиме ввод других полей, таких как «Cc» (Carbon copy). Просто нажимайте «Enter», чтобы пропустить этот этап. Когда вы введете адрес или адреса электронной почты, необходимо нажать «Enter», чтобы перейти на новую строку, к телу письма.

После нажатия Ctrl+D вы возвращаетесь в командную строку без каких либо дополнительных оповещений. Однако ваше письмо было отправлено.

Интересно, что если вы ничего не введете в теле письма и нажмете Ctrl+D, команда mail отреагирует на это:

# mail -s «This is the subject» m00n.silv3r@gmail.com Cc: Null message body; hope that’s ok

Если тело письма хранится у нас в отдельном файле, мы можем напрямую использовать его для отправки письма. Это полезно при вызове команды mail из скриптов, или других программ, написанных, например, на perl или php.

$ mail -s «Hello World» user@yourmaildomain.com < /home/user/mailcontent.txt

Или быстрая отправка письма одной строкой:

# echo «This is the message body» | mail -s «This is the subject» m00n.silv3r@gmail.com

Другие полезные параметры команды mail:

-s subject (тема письма)

-c -address (CC — отправка копии письма по адресам -address)

-b -address (BCC — отправка скрытой копии письма по адресам -address)

Ниже пример использования этих опций:

$ mail -s «Hello World» user@yourmaildomain.com -c usertocc@yourmaildomain.com -b usertobcc@yourmaildomain.com

Возможно задавать несколько получателей, перечисляя их адреса через запятую.

$ mail -s «Hello World» user1@yourmaildomain.com,user2@yourmaildomain.com

Указать адрес отправителя тоже несложно, но здесь есть своя хитрость. После отправляемого письма необходимо добавить перед своим адресом следующую последовательность символов:

(двойное тире) (пробел) (одинарное тире) (без пробела) f

Ниже пример:

$ mail -s «Hello World» user@yourmaildomain.com — -f from_user@yourmaildomain.com

Однако приведенная выше последовательность может работать в centos, но не в debian или ubuntu. В этих системах используется альтернативный синтаксис:

# echo «This is the message body» | mail -s «This is the subject» m00n.silv3r@gmail.com -aFrom:blog@binarytides.com

Опция a в целом добавляет дополнительные заголовки. Чтобы задать с ее помощью отправителя, используется следующий синтаксис:

# echo «This is the message body» | mail -s «This is the subject» m00n.silv3r@gmail.com -aFrom:Blogger<blog@binarytides.com>

Обратите внимание, что бы экранируем угловые скобки, так как они могут иметь свое назначение для командной оболочки

Как избежать ошибок при составлении и отправке писем

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

Самый простой способ это понять – отправить тестовое сообщение на свой ящик. Затем следует протестировать его отправку и получение, используя разные внешние почтовые сервисы: gmail, yandex, mail, rambler и другие. Если сообщение получено, следует ответить на него, проверив корректность исполнения команды «RE» вашим почтовым сервером и принятие ответа условным отправителем.

Довольно часто проблемы с попаданием писем в папку «Спам» или программной блокировкой на стороне получателя лежат в неверном оформлении ключевых полей. Особенно это касается массовых рассылок коммерческого характера. Для отправки большого количества однотипных сообщений как минимум потребуется выполнение следующих параметров настройки:

  • выделенный IP-адрес с целью исключить блокировку на стороне сервера-ретранслятора или почтовой программы конечного получателя;
  • криптографические подписи DKIM и SPF, помогающие подтвердить подлинность домена и минимизировать количество писем, воспринимаемых как спам.

Некорректное использование бота для отправки писем может привести к блокировке отправителя и другим нежелательным последствиям. Даже если информация, которую вы отправляете потенциальным клиентам, реально интересна им, система спам-фильтрации может воспринять данную рассылку как вредоносную. Чтобы избежать этого, лучше всего воспользоваться услугами специализированных компаний.

В моей практике был случай, когда никак не удавалось добиться получения моей электронной корреспонденции одним из сотрудников компании «Лукойл». Письма я отправлял самые простые, используя корпоративный ящик. Только после того, как мой респондент обратился в IT-службу своего предприятия, выяснилось, что данный адрес находится в блэк-листе. Попал он туда из-за каких-то ошибок, допущенных моим предшественником. Понадобилось больше недели, чтобы адрес включили в «белый список». Все это время письма, высылаемые с личного mail@yandex.ru, доходили без проблем.

Полезно: Почему не приходят письма с сайта. Пример частного случая.

Что делать, если посылка вернулась обратно в Китай?

Иногда случается так, что заказ раньше времени может вернуться назад (например, на пакете полностью повреждён адрес назначения). Не следует паниковать, если такое произошло. Надо просто написать об этом продавцу и требовать возврата денежных средств или повторной отправки.

Однако, стоит внимательно отслеживать трекинг-номер (особенно это касается комбинированных систем, когда данные одновременно могут собираться сервисом с разных источников). Данные на почтовых сайтах отправителя и получателя могут обновляться не синхронно. Это не будет препятствием для следования посылки.

Третий метод отправки сообщения пользователям RDS через Send-RDUserMessage

Безусловно самым популярным и универсальным методом отправки оповещений пользователям удаленного рабочего стола, являются командлеты PowerShell. Одним из таких командлетов выступает Send-RDUserMessage.

Справка по командлеты Send-RDUserMessage — https://docs.microsoft.com/en-us/powershell/module/remotedesktop/send-rdusermessage?view=win10-ps

Запускаем PowerShell от имени администратора или нужного пользователя. Синтаксис будет такой:

Еще есть скрипт от Microsoft инженера https://gallery.technet.microsoft.com/scriptcenter/Send-NetMessage-Net-Send-0459d235

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

1 скрипт

Подробнее на https://blog.it-kb.ru/2013/11/15/remote-desktop-services-send-message-to-all-active-rds-farm-users-via-powershell

Кстати если вы неправильно развернули RDS ферму, то при выполнении скрипта получите сообщение

Get-RDUserSession : На svt2019s01.root.pyatilistnik.org не развернуты службы удаленных рабочих столов. Эту операцию можно выполнить после их развертывания. Для получения дополнительных сведений.

На этом у меня все. Мы рассмотрели несколько методов по массовой отправке сообщений пользователям удаленных рабочих столов. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Команда Maildir-utils

«mu» — это набор утилит командной строки для Linux/Unix, который позволяет производить быстрый поиск писем.

Пользователи Debian/Ubuntu могут установить его с помощью apt-get:

# apt-get install maildir-utils

Пользователи Fedora / CentOS / Red Hat Enterprise Linux (RHEL) могут использовать yum:

# yum install maildir-utils

Ниже пара простых команд из этого пакета:

$ mu find from:william subject:report

для поиска писем от william с темой report.

Чтобы проверить текущие настройки почты, используется опция .

# mu- VERSION=2.99.97 SYSCONFDIR=/etc MAILSPOOLDIR=/var/mail/ SCHEME=mbox LOG_FACILITY=mail …..

Итак, можно подвести итоги. На самом деле получение и отправление писем из командной строки не представляет особой сложности, если вы знаете, что делаете.

Как отправить предупреждение пользователям RDS через диспетчер задач

Во времена терминальных служб на Windows Server 2008 R2, была замечательная возможность массовой отправки сообщений для всех пользователей фермы и делалось, это штатно из диспетчера задач. В 2008R2, когда вы запустите диспетчер задач и перейдете на вкладку «Пользователи», то у вас была возможность выделить их всех, щелкнуть правой кнопкой мыши и из контекстного меню выбрать пункт «Отправить сообщение».

У вас откроется окно «Отправка сообщений», где вы можете задать заголовок сообщения и его текст. После чего нажмите кнопку «Ок».

В результате все пользователи данного удаленного стола, получат вот такое сообщение в виде всплывающего окна.

Точно так же в Windows Server 2008 R2 вы могли произвести отправку оповещений, через оснастку «Диспетчер служб удаленных рабочих столов»

К сожалению начиная с Windows Server 2012 R2, данную возможность для массовой рассылки из диспетчера задач убрали, вы теперь не можете выделить всех пользователей.

Не нужно писать тесты, если

  • Вы делаете простой сайт-визитку из 5 статических html-страниц и с одной формой отправки письма. На этом заказчик, скорее всего, успокоится, ничего большего ему не нужно. Здесь нет никакой особенной логики, быстрее просто все проверить «руками»
  • Вы занимаетесь рекламным сайтом/простыми флеш-играми или баннерами – сложная верстка/анимация или большой объем статики. Никакой логики нет, только представление
  • Вы делаете проект для выставки. Срок – от двух недель до месяца, ваша система – комбинация железа и софта, в начале проекта не до конца известно, что именно должно получиться в конце. Софт будет работать 1-2 дня на выставке
  • Вы всегда пишете код без ошибок, обладаете идеальной памятью и даром предвидения. Ваш код настолько крут, что изменяет себя сам, вслед за требованиями клиента. Иногда код объясняет клиенту, что его требования — гов не нужно реализовывать

Отправка писем из скриптов bash/shell

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

#!/bin/bash du -sh | mail -s «disk usage report» user@yourmaildomain.com

Откройте новый файл, вставьте в него приведенные выше строки, сохраните и запустите. Вы получите письмо, содержащее вывод команды «du -sh».

И последняя хитрость в письмах из командной сроки — добавление вложений к письмам, отправляемым из скриптов. Предположим, вам необходимо сделать резервную копию директории с конфигурационными файлами, заархивировать ее и отправить в качестве вложения с помощью mutt:

#!/bin/bash tar -zcf /home/user/backup.tar.gz /home/user/files_to_backup echo «d configuration files» | mutt -a /home/user/backup.tar.gz -s «backup data» user@yourmaildomain.com

Команда echo в начале третьей строки добавляет текст «d configuration files» в тело письма.

Команда Maildir-utils

«mu» — это набор утилит командной строки для Linux/Unix, который позволяет производить быстрый поиск писем.

Пользователи Debian/Ubuntu могут установить его с помощью apt-get:

# apt-get install maildir-utils

Пользователи Fedora / CentOS / Red Hat Enterprise Linux (RHEL) могут использовать yum:

# yum install maildir-utils

Ниже пара простых команд из этого пакета:

$ mu find from:william subject:report

для поиска писем от william с темой report.

Чтобы проверить текущие настройки почты, используется опция info.

# mu-tool info
VERSION=2.99.97
SYSCONFDIR=/etc
MAILSPOOLDIR=/var/mail/
SCHEME=mbox
LOG_FACILITY=mail
.....

Итак, можно подвести итоги. На самом деле получение и отправление писем из командной строки не представляет особой сложности, если вы знаете, что делаете.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: