Недавно я столкнулся с задачей: требовалось разослать тысячи писем с ссылкой на опрос всем студентам нашего университета.
Проблема массовой рассылки в том, что в поле СС виден весь список именной рассылки.
Я решил эту задачу через простой почтовый клиент mutt.
Mutt является текстовым почтовым клиентом для Unix-подобных систем. Первоначально он был написан Майклом Элкинсом в 1995 году и выпущен под лицензией GNU General Public License.
Прежде всего, в корневой папке юзера нужно создать файл конфигурации:
$ joe ~/.muttrc
Тут мы объясним программе как нас зовут и какой адрес увидит получатель:
set realname="John Smith"
set from="jsmith@whitehouse.gov"
set use_from=yes
После этого нужно создать само письмо.
$ joe ~/body
Само письмо, естественно, на html:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=«Content-Type» content=«text/html; charset=utf-8»>
</head>
<body>
<p><font color="#2E7BE4"><em><strong>Здравствуйте!</strong></em></font></p>
<p align="justify">Здесь находится текст Вашего письма, <strong><font color="#CA9E64">при получении адресатом письма, данный участок текста будет коричневого цвета</font></strong>. При создании писем используйте стандартные HTML теги для корректного отображения элементов форматирования текста, при просмотре получателем, как с использованием веб-интерфейсов, так и с использованием почтовых сборщиков (Outlook, Thunderbird и т.п.).</p>
<p>
<font color="#2E7BE4"><strong><i>С Уважением</i></strong><br>
</font>
</p>
</body>
</html>
Теперь нам нужен файл со списком рассылки, назовем его list.
$ joe ~/list
email2@mail.com .....и т.д.email@mail.com
Примечательно, что список может быть любых размеров.
Теперь, когда все подготовленно, пора переходить к самой рассылке:
$ for I in `cat list`; do cat body | mutt -e "set content_type=text/html" -a "attachment.pdf" -s "Заголовок письма" -- $I < body;echo $I;sleep 3 ;done
Этот простенький скрипт на языке bash посылает поочередно (for I in `cat list`; do cat body), на каждый адрес (-- $I), раз в три секунды (sleep 3 — чтобы сервер не принял нас за спамеров) письмо (body) из списка (list) с вложенным нами файлом (attachment.pdf) и показывает результат работы (echo $I).
Команда «set content_type=text/html» говорит о том, что письмо нужно форматировать в html.
Вот и все, надеюсь мой опыт вам пригодится.
Автор: pan_alik