Mutt вложение файла. Mutt, ssmtp и отправка отчетов

28.02.2019

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

Mutt — это простой консольный email клиент, которые реализует подход unix к созданию программ.

Для работы с mutt существует хорошая связка программ:

fetchmail->procmail->mutt->smtp
fetchmail &mdash забирает почту с сервера
procmail &mdash фильтрует почту по ящикам
nbsmtp &mdash загружает почту на сервер

Т.к. я не осилил настройку данной связки, то если вам интересно Вы можете обратиться к ссылке . Тем более есть более хорошие связки программ, о которых будет рассказано в других постах. Тем более, что сам по себе mutt начиная с определённой версии умеет работать с smtp, pop и imap. Поэтому использование fetchmail, procmail и nbsmtp (на мой взгляд) может быть оправдано лишь тем, что в них удобнее настраиваются правила.

настройка mutt

(для полного ознакомления с возможностями mutt можно прочитать [ , ])

Настройки mutt загружаются в следующей последовательности /etc/mutt/Muttrc —> ~/.muttrc или файл ~/.mutt/muttrc и настройки из.muttrc переопределяют общесистемные настройки. Так же возможно использовать файлы вида.muttrc- подробнее про это можно найти в .

Файл настроек

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

В файле могут содержаться комментарии, строки начинающиеся с символа хэш (#)

Символы (‘) и («) используются для ввода строк, которые содержат пробелы или другие специальные символы. Разница между символами (‘) и («), такая же как и в sh/zsh, т.е. строки заключенные в одиночные кавычки просто подставляются, а строки в двойных кавычках выполняются. Например символы, начинающиеся с \ (\n и т.п.) будут подставлены в («), но не в (‘). Для подстановки » внутри строк, заключенных в кавычки нужно их экранировать.

Символы (`) могут использоваться для запуска внешних команд. Например:

My_hdr X-Operating-System: `uname -a`

А к доступ к переменным окружения можно получить так же как и в sh/zsh осуществляется с помощью символа $.

Большим плюсом файла настройки.muttrc является возможность подгружать дополнительные файлы при помощи команды source filename. Это позволяет разбивать файл настроек на большое количество сгруппированных по назначению файлов, что сильно упрощает поддержку mutt.

пример настроек

Теперь пример простого muttrc файла:

Set arrow_cursor # выделять строку символами -> set charset="utf-8" # кодировка терминала set copy=yes # сохранять копии отправляемых писем set edit_headers="yes" # редактирование заготовков при создании письма set menu_scroll # прокручивать список писем по 1 строке set mail_check=3 # интервал проверки почты set mbox=+mbox # файл для хранения прочитанных сообщений set mbox_type=Maildir set record=+sent # куда сохранять отправленные письма set signature="~/.mutt/.signature" # файл с подписью к сообщениям set send_charset="utf-8:koi8-r:windows-1251:us-ascii:iso-8859-1" # кодировка в которой отправлять письма set move = no # переносить письма из папки IMAP set use_from = "yes" set envelope_from = "yes" set beep = "no" # не пищать set imap_keepalive = 900 set use_from set reverse_name # подставлять в поле FROM данные из поля TO set ssl_starttls=yes # использование tls set rfc2047_parameters = yes # правильно декодировать не utf поле from # сортировка писем при просмотре set sort=threads # сортировать по веткам дискуссии< set sort_aux=reverse-date-received # set sort_browser=reverse-date # ви ignore * # игнорировать все заголовки unignore from: date subject to cc # разрешить следующие поля from unignore x-mailing-list: posted-to: # разрешить следующие поля unignore x-mailer: hdr_order Date From To Cc # порядок полей

А теперь о том, как настроить почтовые ящики.

Set folder=/home/qnikst/.Mail/ # папка для писем set from="@gmail.com" # поле from по умолчанию set spoolfile="+gmail/INBOX" # файл почты account-hook . "unset preconnect imap_user imap_pass imap_authenticators;" # удалить imap данные folder-hook gmail "set from="@gmail.com"" # в случае если мы в папке gmail folder-hook gmail "set postponed="+gmail//Drafts"" # установить папку черновиков # установка настроек smtp на основе hook"ов на послании письма send-hook "~f @gmail.com" "set smtp_url=smtp://@smtp.gmail.com:587/"
send-hook "~f @gmail.com" "set smtp_pass="" send-hook "~f @gmail.com" "set realname="""

С подобным конфигом mutt уже вполне готов к работе. А о дальнейших возможностях настройки и использования mutt разговор пойдёт в следующих постах.

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

Mutt - почтовый клиент с текстовым интерфейсом для *nix подобных систем. Был написан в 1995 году и до сих пор развивается. Официальный сайт проекта http://www.mutt.org/ . Изначально mutt мог только просматривать почту, но последние версии умеют получать, отправлять и фильтровать почтовые сообщения.

Для того, чтобы послать письмо с вложением при помощи mutt, достаточно команды:

Mutt -s "Message subject" [email protected] -a file

  • -s "Message subject" - задает тему сообщения
  • -a file - имя прикрепляемого файла
  • [email protected] - получатель письма.

К письму можно прикрепить несколько файлов или указать несколько получателей. Текст письма программа читает из stdin.

Установка и настройка

Установить mutt в CentOS можно командой:

# yum install mutt

Конфигурационный файл находится в ~/.muttrc. Ниже описан пример этого файла для подключения почтового ящика Gmail.

Set realname = "Backup Account" set use_from = yes set editor="nano" set sort = reverse-threads set sort_aux = last-date-received ## confirmation skipping set fast_reply=yes # when replying, don"t prompt for address set include=yes # include original text on reply? set forward_quote=yes # include original text on forward? set delete=yes # don"t ask for delete confirmation set from = [email protected] set imap_user = [email protected] set imap_pass = y0urpa55w0r9 set smtp_url = smtp://[email protected]:587/ set smtp_pass = y0urpa55w0r9 ## don"t let your firewall kill your idle connection set imap_keepalive = 900 ## do not copy sent mail set copy = no set move = no set folder = imaps://imap.gmail.com:993 set spoolfile = +INBOX #or +/Important set postponed = +/Drafts ## cache set header_cache = ~/.mutt/cache/headers set message_cachedir = ~/.mutt/cache/bodies set certificate_file = ~/.mutt/certificates ## SSL set ssl_starttls = yes set ssl_force_tls = yes set smtp_authenticators = "login"

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

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

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

Reading imaps://imap.gmail.com:993/INBOX... Looking up imap.gmail.com... Connecting to imap.gmail.com... TLSv1.2 connection using TLSv1/SSLv3 (ECDHE-RSA-AES128-GCM-SHA256) Logging in... }