Содержание


Использование msmtp в качестве простого SMTP-клиента

Comments

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

В mutt есть множество команд и директив, позволяющих настроить всё, что угодно, вплоть до привязок клавиш, клавиатурных макросов и элементов интерфейса. Единственный минус во всём этом многообразии – mutt не поддерживает протокол SMTP (то есть является только MUA – Mail User Agent – "чистым" почтовым клиентом), и для отправки почты ему необходимо либо соединение с почтовым сервером (MTA - Mail Transfer Agent), либо организация взаимодействия с SMTP-клиентом.

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

Задачу можно решить проще, если в пару к mutt добавить msmtp.

Что такое msmtp

Само название программы говорит о том, что msmtp – это SMTP-клиент, который передаёт почту на SMTP-сервер (например, с домашнего компьютера на почтовый сервер Интернет-провайдера). Для организации работы в связке с почтовым клиентом (с тем же вышеупомянутым mutt'ом, например) нужно создать файл конфигурации с учётными записями электронной почты и указать почтовому клиенту на необходимость обращения именно к msmtp, а не к какой-либо другой программе.

Msmtp поддерживает TLS/SSL-соединения, включая использование сертификатов клиентов, методы аутентификации PLAIN, LOGIN, CRAM-MD5, EXTERNAL, GSSAPI, SCRAM-SHA-1, DIGEST-MD5, NTLM, протокол LMTP, а кроме того работу с несколькими учётными записями и протокол IPv6.

История msmtp ведёт отсчёт с 2005 года. Его автор Мартин Ламберс (Martin Lambers) распространяет свою программу по лицензии GNU GPL, то есть как свободное программное обеспечение.

Пакет msmtp входит в состав многих дистрибутивов Linux, а самую последнюю версию – 1.4.28 от 1 мая 2012 года – можно взять с авторской страницы сайта Sourceforge.

Конфигурирование msmtp

Конфигурирование msmtp может быть выполнено как на уровне отдельного пользователя, так и на уровне всей системы в целом. Во втором случае msmtp возьмёт на себя ту часть функциональности "настоящего" почтового сервера, скажем, Sendmail, которая занимается отправкой почты. Кстати говоря, этот режим работы msmtp так и обозначается: "sendmail mode".

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

В данной статье рассматривается конкретная пользовательская задача: передача сообщений электронной почты на SMTP-серверы Gmail. Эту задачу вполне можно решить на уровне пользователя, то есть файл конфигурации будет создан в домашнем каталоге: ~/.msmtprc. Содержимое этого файла показано в листинге 1.

Листинг 1. Конфигурационный файл уровня пользователя ~/.msmtprc
defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/mylogs/.msmtp.log

account <имя>
host smtp.gmail.com
port 587
protocol smtp
auth on
from <имя@адрес.домен>
user <имя@адрес.домен>
password <*******>

В листинге 1 все элементы, записанные в угловых скобках, необходимо заменить на реальные данные: наименование учётной записи, адрес электронной почты отправителя и пароль соответственно (без угловых скобок).

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

Раздел каждой учётной записи начинается с директивы account, за которой следует наименование конкретной учётной записи (в листинге обозначено, как <имя>). Далее следуют определения целевого хоста почтового сервера (в данном примере – smtp.gmail.com) и номера порта (в данном примере – 587). Определение протокола не требует дополнительных разъяснений. В рассматриваемом случае требуется прохождение процедуры аутентификации для доступа к почтовому серверу, поэтому активизируется соответствующий параметр. Значения параметров from и user во многих случаях одинаковы, но иногда они могут и отличаться, поэтому при вводе реальных значений следует уделить им особое внимание.

И, наконец, самое уязвимое место – пароль. Если компьютер используется только одним пользователем, то можно записать пароль открытым текстом, но в системах, в которых работают несколько пользователей (которые к тому же ещё и не вполне доверяют друг другу), так делать не рекомендуется. В последнем случае вместо директивы password лучше использовать директиву passwordeval, а сам пароль хранить в зашифрованном файле.

Разделов учётных записей, подобных показанной в листинге 1, в конфигурационном файле может быть несколько. Это позволяет более гибко настраивать многочисленные учётные записи для различных целей и без затруднений управлять ими. Как раз в этом и заключается одно из главных достоинств msmtp.

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

chmod 600 ~/.msmtprc

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

Организация взаимодействия msmtp с mutt

Теперь необходимо довести до сведения почтового клиента mutt информацию о том, что при отправке почты он должен обращаться к программе msmtp. Для этого потребуется внести некоторые изменения в соответствующий файл конфигурации, как показано в листинге 2.

Листинг 2. Строки, которые необходимо добавить (или откорректировать) в файл конфигурации ~/.muttrc
set realname='Имя Пользователя'
set from=имя@адрес.домен
set sendmail="/usr/bin/msmtp"
set envelope_from=yes

В листинге 2 для параметра sendmail в качестве значения указывается полный путь к программе msmtp. Следует отметить, что если место расположения msmtp отличается от указанного в листинге 2, то значение данного параметра нужно изменить соответствующим образом.

После того, как все необходимые изменения в конфигурационные файлы внесены, связка mutt+msmtp полностью готова к работе.

Заключение

Применение упрощённого SMTP-клиента msmtp (в сочетании с почтовым клиентом mutt) позволяет очень быстро организовать отправку сообщений электронной почты на почтовый сервер. Такая комбинация не требует большого количества ресурсов компьютера, поэтому может использоваться на ноутбуках, нетбуках и на домашних десктопах. Однажды созданная конфигурация легко переносится с машины на машину – простым копированием конфигурационного файла .msmtprc. Простота, удобство и гибкость – основные достоинства msmtp. Кроме всего прочего предложенное объединение mutt и msmtp соответствует принципам так называемого Unix-way: каждая программа делает только свою работу и делает её хорошо.


Ресурсы для скачивания


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=845567
ArticleTitle=Использование msmtp в качестве простого SMTP-клиента
publish-date=11132012