Меню Рубрики

Автоматическая отправка новых файлов на почту linux

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

Обычно для приемки и отправки почты используются веб-сервисы типа gmail и yahoo, или графические почтовые клиенты. Однако в linux мы можем также отправлять или получать почту в командной строке. Это полезно в таких ситуациях, как отправка почты из скриптов, или в случаях, когда графическая оболочка недоступна.
В этом руководстве описывается, как использовать команду mail для приема и отправки почты.

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

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

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

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

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

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

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

Вы отправили первое письмо из командной строки. Содержимое письма можно вставить из файла.
В некоторых дистрибутивах командная оболочка сначала запросит в интерактивном режиме ввод других полей, таких как “Cc” (Carbon copy). Просто нажимайте “Enter”, чтобы пропустить этот этап. Когда вы введете адрес или адреса электронной почты, необходимо нажать “Enter”, чтобы перейти на новую строку, к телу письма.
После нажатия Ctrl+D вы возвращаетесь в командную строку без каких либо дополнительных оповещений. Однако ваше письмо было отправлено.
Интересно, что если вы ничего не введете в теле письма и нажмете Ctrl+D, команда mail отреагирует на это:

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

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

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

-s subject (тема письма)
-c email-address (CC – отправка копии письма по адресам email-address)
-b email-address (BCC – отправка скрытой копии письма по адресам email-address)

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

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

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

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

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

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

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

Отправка писем с вложениями

Команда mail используется до сих пор, так как это простой и быстрый способ отправки писем, однако она, к сожалению, не поддерживает отправку вложений. Теперь мы сделаем следующий шаг и откроем для себя MUTT. Это очень мощный консольный почтовый клиент, и он умеет намного больше, чем просто отправка писем с вложениями, но в данном случае нас интересует именно эта возможность.

Если mutt по умолчанию у вас не установлен, вы можете сделать это с помощью apt-get или yum от имени root (или используя sudo):

Для пользователей Debian / Ubuntu:

Для пользователей Fedora / CentOS или Red Hat Enterprise Linux (RHEL):

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

Отправка простого письма:

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

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

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

Откройте новый файл, вставьте в него приведенные выше строки, сохраните и запустите. Вы получите письмо, содержащее вывод команды “du -sh”.
И последняя хитрость в письмах из командной сроки – добавление вложений к письмам, отправляемым из скриптов. Предположим, вам необходимо сделать резервную копию директории с конфигурационными файлами, заархивировать ее и отправить в качестве вложения с помощью mutt:

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

Чтение писем

До сих пор мы рассматривали отправку писем из командной строки. На самом деле также легко можно читать письма из командной строки:

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

Первая строка вывода – это версия программы mail. Вторая строка говорит о том, что имеется два сообщения, оба непрочитанные, и почта хранится в файле /var/spool/mail/hcg.
У всех пользователей linux файл с почтой находится в директории /var/spool/mail/. При получении нового письма оно добавляется в конец этого файла. После информации о файле выводится список писем.
Настоятельно рекомендуется не редактировать этот файл без использования mail или аналогичной программы. Читать или производить поиск писем лучше всего с помощью grep.
Чтобы прочитать первое письмо, просто введите 1 и нажмите enter. При чтении письма, если вам необходимо вернуться к списку писем, просто нажмите “q”. Символ > показывает, какое из писем в настоящее время является текущим.

Команда Maildir-utils

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

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

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

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

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

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

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

Источник

Учим Ubuntu докладывать о своем состоянии по почте за 5 минут

Сколько я работаю админом, столько придумываю скрипты и методы как упростить администрирование серверов. Так как мне больше всего нравится Linux, то мои мысли направлены на упрощение админства именно этой оси.

В один прекрасный день мне понадобилось автоматизировать некую рутинную работу на своем ноутбуке с Ubuntu. Через 15 минут скрипт был написан, протестирован и добавлен в крон по заданию. Очень удобно, все хорошо. Но чего-то не хватало. За время работы админом я приобрел профессиональную паранойю: всегда в работе надо продумывать самые плохие сценарии. А если мой сценарий не сработает?

Еще через 5 минут я захотел улучшить проделанную работу. И тут я вспомнил про скрипт для отправки сообщения по почте с терминала Linux, которым я активно пользуюсь на работе в системе мониторинга Zabbix.

Существует очень удобная легковесная консольная утилита для отправки емэйлов SendEmail.

1. Обновляем список пакетов и устанавливаем

sudo apt-get update && sudo apt-get install sendemail

2. Допустим, у нас есть некий скрипт backup.sh

3. Создаем в той же папке скрипт sendemail.sh

Сохраняем, делаем скрипт исполняемым
chmod +x sendemail.sh

Созданный скрипт принимает 2 параметра: заголовок и тема. Это удобно, потому что можно использовать один скрипт для рассылки писем с разных программ.

Пробуем отправить письмо. Передаем скрипту параметры, первым будет тема, вторым тело письма.
./sendemail.sh Тест Проверка!

Проверяем почту. На нее должно придти тестовое письмо.

4. Усовершенствуем скрипт бэкапа
Например, я хочу узнать размер созданного бэкапа и свободное место на томе.

Конечно письмо будет несколько некрасивым, слишком много лишнего. Но смысл главное ясен.

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

Кстати, скрипт отправки можно сделать более универсальным добавив еще один параметр для указания кому отправлять.

P.S. Мой первый топик, извиняюсь сразу.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Источник

Автоматизация обработки почты на Ubuntu

Рассмотрим задачу по обработке почтовых вложений и сохранение их в различных каталогах.

Установка необходимого ПО

apt-get install fetchmail procmail uudeview

  • fetchmail — собирает почту с удаленных почтовых серверов (почтовых ящиков).
  • procmail — локальный обработчик, используется для фильтрации.
  • uudeview— для работы с бинарными файлими, нужен для обработки вложений.

Настройка ПО

Fetchmail

Открываем следующий файл:

И приводим его к следующему виду:

poll imap.yandex.com
port 993
proto IMAP
user “mailautomat”
password “password”
ssl
mda “/usr/bin/procmail -d %T”
set syslog set logfile “fetchmail/logs/fetchmail.log”

* где imap.yandex.com — сервер с постовым ящиком, с которого будем принимать почту; 993 — порт для поделючения по IMAP; mailautomat / password — имя учетной записи и пароль для подключения к серверу.

Для настройки подключения по POP3:

poll pop3.yandex.com
port 995
proto POP3
user “mailautomat”
password “password”
ssl
mda “/usr/bin/procmail -d %T”
set syslog set logfile “fetchmail/logs/fetchmail.log”

Procmail

Открываем файл конфигурации:

И приводим его к виду:

:0
*^content-Type:
<
:0fw
| uudeview -i +a +o -p $HOME/fetchmail/attachments –
>

Источник


Adblock
detector