Итак, для если вы хотите массово рассылать 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 другие приложения. Это делается здесь.
./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
Где создать папку adressa? Спасибо
поправь в статье – если назвал скрипт send2.sh, то и далее нужно chmod u+x делать для send2.sh и выполнять его же. Потом если в конфиге test@gmail, то необязательно ниже светить свою гугловскую почту. В статье для полноты ощущений не хватает настроек tls и примера настройки на yandex.mail