Linux mutt отправка почты

Установка и настройка почтового клиента mutt на Linux и FreeBSD

Установка

yum install mutt

apt-get install mutt

pkg install mutt

Настройка клиента

Рассмотрим принцип настройки клиента Mutt для работы по IMAP и POP3.

IMAP + SMTP

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

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

set from = master@dmosk.ru
set imap_user = master@dmosk.ru
set imap_pass = password
set smtp_pass = password
set realname = «Дмитрий Моск»
set smtp_url = smtp://smtp.dmosk.ru:465/
set folder = imaps://imap.dmosk.ru:993

set spoolfile = +INBOX
set postponed = +[Gmail]/Drafts

set use_from = yes
set editor=’nano’
set sort = reverse-threads
set sort_aux = last-date-received

set fast_reply=yes
set include=yes
set forward_quote=yes
set delete=yes

set imap_keepalive = 900
set copy = no
set move = no

/.mutt/cache/headers
set message_cachedir =

/.mutt/cache/bodies
set certificate_file =

set ssl_starttls = yes
set ssl_force_tls = yes
set smtp_authenticators = ‘login’

* где необходимо обратить внимание на следующие опции:

  • master@dmosk.ru — адрес электронной почты; Используем для поля from и в качестве логина.
  • master — имя учетной записи;
  • password — пароль;
  • Дмитрий Моск — отображаемое имя;
  • smtp.dmosk.ru — SMTP-сервер; В данном примере мы подключаемся к серверу по SSL-порту 465. Также могут быть варианты 587 и 25.
  • imap.dmosk.ru — сервер IMAP. Подключение выполняем по SSL-порту 993. Также можно использовать порт 143.

Для проверки вводим команду:

При запросе подтвердить принятие сертификата, нажимаем a.

POP3 + SMTP

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

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

set from = master@dmosk.ru
set smtp_pass = password
set realname = «Дмитрий Моск»
set smtp_url = smtp://smtp.mail.ru:465/

set pop_user = master@dmosk.ru
set pop_pass = password
set pop_host = pops://pop.dmosk.ru:995/
set pop_reconnect = yes
set pop_checkinterval = 1
set pop_delete = no

set mbox_type = mbox
set folder =

/mail
set mbox = +Inbox
set spoolfile= +Inbox

set use_from = yes
set editor=’nano’
set sort = reverse-threads
set sort_aux = last-date-received

set fast_reply=yes
set include=yes
set forward_quote=yes
set delete=yes

set imap_keepalive = 900
set copy = no
set move = no

/.mutt/cache/headers
set message_cachedir =

/.mutt/cache/bodies
set certificate_file =

set ssl_starttls = yes
set ssl_force_tls = yes
set smtp_authenticators = ‘login’

* где необходимо обратить внимание на следующие опции:

  • master@dmosk.ru — адрес электронной почты; Используем для поля from и в качестве логина.
  • master — имя учетной записи;
  • password — пароль;
  • Дмитрий Моск — отображаемое имя;
  • smtp.dmosk.ru — SMTP-сервер; В данном примере мы подключаемся к серверу по SSL-порту 465. Также могут быть варианты 587 и 25.
  • imap.dmosk.ru — сервер IMAP. Подключение выполняем по SSL-порту 993. Также можно использовать порт 143.

Для проверки вводим команду:

При запросе подтвердить принятие сертификата, нажимаем a.

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

Яндекс

По умолчанию, доступ на Яндекс из почтовых клиентов закрыт. Необходимо зайти на почту в браузере, кликнуть по значку шестеренки — Все настройки — Почтовые программы — Включить «С сервера imap.yandex.ru по протоколу IMAP». Подробнее в инструкции Настройка почты GMAIL и Яндекс для подключения по IMAP или POP3.

Далее создаем файл с настройкой mutt:

set realname = «Дмитрий Моск»
set from = username@yandex.ru
set use_from = yes

set imap_user = username@yandex.ru
set imap_pass = password
set smtp_url = smtp://smtp.yandex.ru:465/
set smtp_pass = password
set smtp_authenticators = ‘login’

set ssl_starttls = yes
set ssl_force_tls = yes

set folder = imaps://imap.yandex.ru:993
set spoolfile = +INBOX
set postponed = +[Gmail]/Drafts
set record = =Отправленные

@Mail.ru

set realname = «Дмитрий Моск»
set from = username@mail.ru
set use_from = yes

set imap_user = username@mail.ru
set imap_pass = password
set smtp_url = smtp://smtp.mail.ru:465/
set smtp_pass = password
set smtp_authenticators = ‘login’

set ssl_starttls = yes
set ssl_force_tls = yes

Читайте также:  Защитник windows обновление автоматически

set folder = imaps://imap.mail.ru:993
set spoolfile = +INBOX
set postponed = +[Gmail]/Drafts
set record = =Отправленные

GMAIL

Как в случае с Яндексом, в GMAIL также необходимо включить поддержку imap. Для этого заходим в настройки почты (кликаем по значку шестеренки) — Настройки — Пересылка и POP/IMAP — Включить IMAP.

На этом не все — Google требует безопасную аутентификацию OAuth2. Чтобы у нас заработал Mutt, необходимо разрешить подключение с устаревших приложений. Для этого заходим в настройки общего аккаунта Google — Безопасность — прокручиваем до «Ненадежные приложения, у которых есть доступ к аккаунту» — кликаем по Открыть доступ (не рекомендуется) — меняем положение переключателя «Небезопасные приложения заблокированы» на положение «включено».

Подробнее о включении IMAP и POP3 для почты от Google читайте в инструкции Настройка почты GMAIL и Яндекс для подключения по IMAP или POP3.

set realname = «Дмитрий Моск»
set from = username@gmail.com
set use_from = yes

set imap_user = username@gmail.com
set imap_pass = password
set smtp_url = smtp://smtp.gmail.com:465/
set smtp_pass = password
set smtp_authenticators = ‘login’

set ssl_starttls = yes
set ssl_force_tls = yes

set folder = imaps://imap.gmail.com:993
set spoolfile = +INBOX
set postponed = +[Gmail]/Drafts
set record = =Отправленные

Отправка почты из консоли

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

echo «Текст сообщения» | mutt -s «Тема» [дополнительные опции] —

Источник

Массовая рассылка из консоли с помощью mutt

Недавно я столкнулся с задачей: требовалось разослать тысячи писем с ссылкой на опрос всем студентам нашего университета.
Проблема массовой рассылки в том, что в поле СС виден весь список именной рассылки.
Я решил эту задачу через простой почтовый клиент mutt.

Mutt является текстовым почтовым клиентом для Unix-подобных систем. Первоначально он был написан Майклом Элкинсом в 1995 году и выпущен под лицензией GNU General Public License.

Прежде всего, в корневой папке юзера нужно создать файл конфигурации:

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

set realname=«John Smith»
set from=«jsmith@whitehouse.gov»
set use_from=yes

После этого нужно создать само письмо.

Само письмо, естественно, на html:

Теперь нам нужен файл со списком рассылки, назовем его list.

Примечательно, что список может быть любых размеров.

Теперь, когда все подготовленно, пора переходить к самой рассылке:

Этот простенький скрипт на языке bash посылает поочередно (for I in `cat list`; do cat body), на каждый адрес (— $I), раз в три секунды (sleep 3 — чтобы сервер не принял нас за спамеров) письмо (body) из списка (list) с вложенным нами файлом (attachment.pdf) и показывает результат работы (echo $I).

Команда «set content_type=text/html» говорит о том, что письмо нужно форматировать в html.

Вот и все, надеюсь мой опыт вам пригодится.

Источник

Отправка почты из командной строки (консоли) Linux

В данной статье мы рассмотрим основные утилиты для отправки электронных писем по SMTP из консоли Linux – mail/mailx/mutt. Данная инструкция применима ко всем современным дистрибутивам Linux.

Для отправки почты из командной строки Linux вам нужно установить Mail User Agent, которые умеет подключаться к smtp серверам для отправки и получения почты.

В первую очередь рассмотрим утилиту mail (mailx). Для ее установки, выполните:

  • Для Debian/Ubuntu: # sudo apt-get install mailutils
  • Для CentOS/Redhat установите пакет с помощью yum (dnf) # dnf install mailx

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

# yum install sendmail –y

Основные опции при отправке писем:

    -s — Subject:

Чтобы отправить простое сообщение из консоли Linux, воспользуйтесь командой:

# echo «Это тестовое письмо» | mail -s «Проверка отправки почты» admin@build-centos.ru

Читайте также:  Windows connecting to wifi

Проверьте, что письмо доставлено в ящик.

Если вам нужно посмотреть подробные логи отправки писем по SMTP, их можно посмотреть в файле:

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

Чтобы указать другого отправителя письма (mail from), используйте ключ -r:

# echo «Это тестовое письмо 2» | mail -s «Проверка отправки почты 2» -r admin@build-centos.ru test@build-centos.ru

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

# echo «Это тестовое письмо 3» | mail -s «Проверка отправки почты 3» -r admin@build-centos.ru test@build-centos.ru, test-2@build-centos.ru

Как видите, письмо было отправлено двум получателям. А с помощью ключа -c вы можете отправить копию письма на указанный ящик:

# echo «Это тестовое письмо 4» | mail -s «Проверка отправки почты 4» -r admin@build-centos.ru -c test@build-centos.ru

Если вам нужно прикрепить к письму файл, укажите путь к файлу в параметре –a.

# echo «Файл во вложении» | mail -s «Проверка вложения» -a /root/test.txt -r admin@build-centos.ru test@build-centos.ru

В указанных почтовый ящик должно прийти письмо с вложением. Если нужно отпрравить два или более файлов, добавьте каждый файл через собственный атрибут –a:

# echo «Вложены 2 файла » | mail -s «Вложение нескольких файлов » -a /root/test.txt -a /root/message.log -r admin@build-centos.ru test@build-centos.ru

Вы можете отправить письмо через конкретный SMTP сервер. Его имя и порт подключения указываются в параметре -S smtp= :

# echo «Messages smtp server» | mail -s «Test smtp server» -S smtp=»build-centos.ru:25″ -r admin@build-centos.ru admin@build-centos.ru

Если удаленный SMTP сервер требует авторизации перед отправкой, вы можете указать имя пользователя и пароль с помощью параметров -S smtp-auth-user и -S smtp-auth-password.

# echo «Test auth mailbox» | mail -v -s «Test auth» -S smtp=»build-centos.ru:25″ -S smtp-auth=login -S smtp-auth-user=»admin@build-centos.ru» -S smtp-auth-password=»password» -S from=admin@build-centos.ru admin@build-centos.ru

При запуске этой команды перед вами появятся список SMTP команд для подключения, авторизации и отправки почты.

Если для отправки нужно использовать TLS шифрование и игнорировать проверку подлинности сертификата сервера, добавьте параметры:

-S smtp-use-starttls
-S ssl-verify=ignore

/.mailrc. Например, добавьте в этот файл такие строки:

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

$ echo «Test mail » | mail -v -s «Testing gmail auth» admin@build-centos.ru

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

Добавьте этот скрипт в планировщик cron и вы будете регулярно получать письма с информацией о свободном месте на вашем сервере.

Еще одна популярная утилита для отправки почты в Linux это mutt:

# sudo apt-get install mutt — для Debian/Ubuntu

# yum install mutt -y — для CentOS/Redhat

Синтаксис mutt такой же, как и у mail/ mailx:

# echo «Text messages mutt» | mutt -s «Test mutt» admin@build-centos.ru

Таким образом, вы можете легко отправлять письма из командной строки, встраивать отправку email оповещений в свои bash скрипты или ватчдоги (удобно для контроля их выполнения).

Источник

Mutt, ssmtp и отправка отчетов

В свое время, когда меня еще не было на Хабре, эта статья была опубликована в песочнице. К сожалению, она никому не понравилась и со временем была удалена. Долго думал, что с ней делать — забить, запостить таки на Хабре или в своем блоге Записки программиста. Решил, раз она писалась для Хабра, пусть на нем и будет опубликована. Итак, под катом — статья о практике отправки отчетов по e-mail. Сейчас, перечитывая текст, понимаю, что статья — не фонтан, но может кому-нибудь пригодится.

Часто передо мной встает задача вроде такой: необходимо ежемесячно (или еженедельно/ежедневно) обработать такие-то логи, построить по ним отчет и отправить его на заданный E-Mail. В этой статье я как раз хотел бы рассказать о второй части такой задачи, а именно об отправке отчетов. Казалось бы, такая рутинная операция, но трудности с ней возникают чаще, чем может показаться на первый взгляд.

Читайте также:  Lenovo b560 wifi drivers windows 10

Я предпочитаю использовать уже готовые, проверенные временем, программы, а не писать каждый раз собственные скрипты. В большинстве случаев нужная программа уже была когда-то кем-то написана, зачем изобретать велосипед?

Для отправки отчетов я пользуюсь mutt. В нем меня привлекает простота интерфейса, возраст (читай — стабильность) программы и то, что mutt портирован если не под все, то почти под все unix-like системы. В моей любимой FreeBSD искать его следует в /usr/ports/mail/mutt.

Чтобы при помощи mutt послать письмо с аттачем, достаточно команды

mutt -s Subject -a File User@Host.com

где Subject — тема сообщения, File — имя прикрепляемого файла, а User@Host.com — получатель письма. К письму можно прикрепить несколько файлов или указать несколько получателей. Текст письма программа читает из stdin.

По умолчанию mutt использует sendmail в качестве MTA. Обычно с этим не возникает трудностей — после установки mutt мы можем сразу приступить к написанию скриптов и все будет прекрасно работать. Но мне приходилось сталкиваться с ситуацией, когда посылка писем напрямую с сервера просто запрещена правилами фаервола. В этом случае следует использовать сторонний SMTP сервер.

Проблема в том, что mutt не имеет функций MTA, то есть работа с SMTP — не его задача. Тем не менее, можно научить его слать почту через заданный smtp-сервер и поможет ему в этом программа ssmtp.

Строго говоря, ssmtp является не MTA, а просто smtp-клиентом, эмулирующим работу sendmail. Если вы, как и я, пользуетесь FreeBSD, то можете поставить ssmtp из портов — /usr/ports/mail/ssmtp.

Настройка ssmtp производится путем редактирования файла /usr/local/etc/ssmtp/ssmtp.conf (в вашей ОС путь к файлу может быть другим). Вот как он примерно выглядит:

root=reports@example.ru # от чьего имени шлем письма
mailhub=smtp.example.ru:465 # smtp-сервер и порт
hostname=localhost # имя нашего хоста, желательно вписать верное
UseTLS=Yes # используем зашифрованное соединение
AuthUser=reports@example.ru # логин
AuthPass=qwerty # пароль
FromLineOverride=Yes # Поле From: может задавать mutt

Если вы хотите слать отчеты через Gmail, конфиг будет выглядеть немного иначе:

root=reports@gmail.com
mailhub=smtp.gmail.com:587
hostname=localhost
UseSTARTTLS=YES
AuthUser=reports@gmail.com
AuthPass=qwerty

Пытаемся послать тестовое письмо с помощью ssmtp:

echo «» | ssmtp -v -s Hello admin@example.ru

Если письмо успешно дошло, значит все было сделано правильно. Если ssmtp говорит нечто вроде:

тоже не проблема, просто ssmtp указал неверный адрес отправителя, и smtp-сервер это заметил. Когда будем слать почту через mutt, все будет задано верно.

Чтобы mutt слал почту через ssmtp, в домашнем каталоге пользователя, от имени которого мы собираемся слать отчеты, нужно подправить файл .muttrc

set sendmail=»/usr/local/sbin/ssmtp» # путь к ssmtp
set realname=»Example Report System» # имя отправителя
set from=»reports@example.ru» # e-mail отправителя

Проверяем работу mutt:

echo «» | mutt -s Hello admin@example.ru

Письмо должно успешно дойти до получателя. Если вы хотите использовать mutt в скриптах, запускаемых по крону, нужно иметь ввиду, что mutt находится в каталоге /usr/local/bin, который по умолчанию не прописан в переменную окружения PATH в вашем crontab. Решения два — либо исправить переменную окружения PATH в кронтабе, либо использовать полное имя mutt в скриптах.

Бывает и такое, что на сервере, с которого приходится слать отчеты, у нас нет root-привилегий. В этом случае либо придется уговаривать админа установить и настроить mutt, либо все-таки написать свой собственный скрипт отправки электронной почты. Но это уже совсем другая история.

Источник

Оцените статью