МАССОВАЯ РАССЫЛКА HTML ПИСЕМ ИЗ КОНСОЛИ С ПОМОЩЬЮ MUTT

Итак, для если вы хотите массово рассылать html письма – выбираем mutt!!!


Как обычно – в Linux всё делается просто и красиво – обожаю ubuntu.

Рассмотрим массовую (в gmail бесплатно вроде не более 300 в сутки) рассылку почты от аккаунта gmail.com, так, что бы в пришедшем адресату письме не отображался список рассылки, и письмо не блокировалось почтовиком адресата из-за этой самой рассылки, остальные почтовики тоже не должны вызвать каких-то затруднений.

Нам понадобится msmtp – SMTP-клиент, который может использоваться как SMTP plugin для Mutt и других MUA и соответственно сам mutt -почтовый клиент с текстовым интерфейсом для Unix-подобных операционных систем.

Устанавливаем mutt и msmtp

sudo apt-get install mutt msmtp msmtp-mta

Настройка msmtp и mutt сводится к созданию в домашней директории 2-х файлов: .msmtprc и .muttrc, c опциями подключения и данными для авторизации следующего содержания:
Создаем второй файл в корневой папке – .msmtprc – для порта 587

nano .msmtprc
account default
host smtp.gmail.com
port 587
protocol smtp
auth on
from test@gmail.com
user test@gmail.com
password pAsSwOrD
tls on
tls_starttls on
tls_certcheck off
logfile /var/mutt/msmtp.log

Для порта 465

host smtp.gmail.com
port 465
protocol smtp
auth on
from test@gmail.com
user test@gmail.com
password pAsSwOrD
tls on
tls_starttls off
tls_certcheck off
logfile /var/mutt/msmtp.log

Создаем второй файл в корневой папке – .muttrc

nano .muttrc
set realname='test'
set from=test@gmail.com
set sendmail="/usr/bin/msmtp"
set envelope_from=yes
set folder=/var/mutt/mail
set copy=yes
set record=/var/mutt/mail/sended
mailboxes 'echo /var/mutt/mail/*'

Вместо test@gmail.com, напишите свою почту gmail, вместо pAsSwOrD – пароль.
Создадим необходимые папки для хранения логов отправки почты и самих отправленных писем

mkdir -p /var/mutt/mail

Затем применяем права, иначе mutt нам не разрешить отправку

chmod 600 .msmtprc

Далее создаём в домашней папке  в ней создаём файл adresa со списком e-mail адресов, по одному адресу на строку и текстовый файл text с текстом рассылки. В файл текст вставляем html код письма.
В эту же папку кладем файл для аттача – attach.pdf если таковой нужен.Ещё я использую оповещение  notify-send об окончании рассылки, добавив в концу скрипта строку:

Теперь сам cкрипт рассылки, я назвал его send2.sh ( не забываем сделать его исполняемым).

Скачать его можно тут.

 #! /bin/bash
for I in cat adresa; do cat text |
mutt -e "set content_type=text/html" -a "attach.pdf" -s "Информационное письмо" -- $I < text;echo $I;sleep 61 ;done
notify-send -u normal -i baobab РАССЫЛКА -t 0 Рассылка\ закончена.\ Проверьте\ log.txt
done

Далее делаем скрипт исполняемым:

sudo chmod u+x script2.sh

Если будете использовать gmail для рассылки не забудьте разрешить gmail другие приложения. Это делается здесь.

разрешить_google_отправку_почты
Запускаем рассылку - открываем терминал в той папке, куда вы сохранили все файлы - adresa,text,attach.pdf и выполняем:
./script2.sh

массовая рассылка

Вот так.
Отправить тестовое письмо

echo "This is the body" | mutt -s "Testing mutt" a.v.galushko86@gmail.com

 Profit!! Останется выбрать почту, которая не будет блокироваться при массовой рассылке.

Как отправить на почту сообщение не-интерактивно через командную строку

echo “Sending an attachment.” | mutt -s 'My mail' email@mail.com

2 комментария к “МАССОВАЯ РАССЫЛКА HTML ПИСЕМ ИЗ КОНСОЛИ С ПОМОЩЬЮ MUTT

  1. поправь в статье – если назвал скрипт send2.sh, то и далее нужно chmod u+x делать для send2.sh и выполнять его же. Потом если в конфиге test@gmail, то необязательно ниже светить свою гугловскую почту. В статье для полноты ощущений не хватает настроек tls и примера настройки на yandex.mail

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.