Використання msmtp в якості простого smtp-клієнта

Досвідченим адміністраторам і користувачам з великим стажем добре знайомий простий і надійний поштовий клієнт 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

Конфігурація msmtp може бути виконано як на рівні окремого користувача, так і на рівні всієї системи в цілому. У другому випадку msmtp візьме на себе ту частину функціональності "справжнього" поштового сервера, скажімо, Sendmail. яка займається відправкою пошти. До речі кажучи, цей режим роботи msmtp так і позначається: "sendmail mode".

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

У даній статті розглядається конкретна призначена для користувача завдання: передача повідомлень електронної пошти на SMTP-сервери Gmail. Це завдання цілком можна вирішити на рівні користувача, тобто файл конфігурації буде створено в домашньому каталозі:

/.msmtprc. Вміст цього файлу показано в лістингу 1.

Лістинг 1. Конфігураційний файл рівня користувача

Розділ defaults містить значення параметрів, що встановлюються за замовчуванням для застосування до всіх наступних облікових записів. Тут користувач може визначати і значення інших необхідних йому параметрів, попередньо подивившись в документації (див. Посилання вище), як це робиться.

Розділ кожної облікового запису починається з директиви account, за якою слідує найменування конкретної облікового запису (в лістингу позначено, як <имя>). Далі слідують визначення цільового назву поштового сервера (в даному прикладі - smtp.gmail.com) і номера порту (в даному прикладі - 587). Визначення протоколу не вимагає додаткових роз'яснень. В даному випадку потрібно проходження процедури аутентифікації для доступу до поштового сервера, тому активізується відповідний параметр. Значення параметрів from і user в багатьох випадках однакові, але іноді вони можуть і відрізнятися, тому при введенні реальних значень слід приділити їм особливу увагу.

І, нарешті, найвразливіше місце - пароль. Якщо комп'ютер використовується тільки одним користувачем, то можна записати пароль відкритим текстом, але в системах, в яких працюють кілька користувачів (які до того ж ще й не цілком довіряють один одному), так робити не рекомендується. В останньому випадку замість директиви password краще використовувати директиву passwordeval. а сам пароль зберігати в зашифрованому файлі.

Розділів облікових записів, подібних показаної в лістингу 1, в файлі конфігурації може бути кілька. Це дозволяє більш гнучко налаштовувати численні облікові записи для різних цілей і без труднощів управляти ними. Якраз в цьому і полягає одна з головних достоїнств msmtp.

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

Якщо права доступу до файлу конфігурації задані невірно, то можуть виникати проблеми при відправці повідомлень поштовим клієнтом.

Організація взаємодії msmtp з mutt

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

Лістинг 2. Рядки, які необхідно додати (або відкоригувати) в файл конфігурації

У лістингу 2 для параметра sendmail як значення вказується повний шлях до програми msmtp. Слід зазначити, що якщо місце розташування msmtp відрізняється від зазначеного в лістингу 2, то значення даного параметра потрібно змінити відповідним чином.

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

висновок

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

Схожі статті