LINUX.ORG.RU

Отправка писем c периодом в 1 минуту

 


0

1

Здравствуйте.
Необходимо организовать автоматическую рассылку писем по списку email адресов с последовательной отправкой одного письма по каждому адресу с периодичностью, например, 1 письмо в минуту.
Т.е. каждому адресату будет отправлено одно письмо.
Если возможно, то хотелось бы обойтись тем ПО, которое есть в наличии: Debian 7, postfix, courier, MySQL, php, nginx.
Подскажите, пожалуйста, основные моменты куда копать или ссылки на инф-цию или подробный мануал.
Заранее благодарю за ответы!



Последнее исправление: alexs777 (всего исправлений: 1)

Если такие вопросы задаешь, значит кодить вообще не умеешь. Поставь wordpress и под него плагин mail poet, загони туда базу мейлов (обычный csv) и отправляй с любой периодичностью, там настраивается.

anonymous
()
Ответ на: комментарий от anonymous

cron

Как сделать, чтобы postfix перемещался каждый раз на новый адрес в списке адресов?
И как этот список скормить postfix`у?

alexs777
() автор топика
Ответ на: комментарий от anonymous

Спасибо за плагин!
Но всё-таки вопрос пока остается открытым. Хотелось бы реализовать это в пределах описанного в вопросе ПО.

alexs777
() автор топика
Ответ на: комментарий от Alternating_Current

Alternating_Current, можно подробнее насчет MySQL?
Я новичок в Линукс...
Как загнать в MySQL список адресов и потом отправлять по одному? Как соединить это с текстом письма?

alexs777
() автор топика

Странно, что ещё никто не отправил в JOB.

dhameoelin ★★★★★
()
Ответ на: комментарий от alexs777

Если не хочешь ничего доустанавливать, сделай очередь писем в MySQL. Не знаю насколько это архитектурно правильно. Пишешь всё, что тебе надо (From, To, Subj, Data ...) в MySQL. А потом по крону дергаешь по одной строке из базы и отправляешь письмо на основе полученных данных. Далее либо ставишь метку, что письмо ушло (в базе останется вся история писем), либо удаляешь его из очереди (база будет подчищаться).

Alternating_Current
()

Раздел путаешь. Любая работа должна быть оплачена. А так как предложения выпить пива я не вижу, то можно смело переносить в раздел jobs.

deterok ★★★★★
()
Ответ на: комментарий от Alternating_Current

Или тебе просто по txt-файлику пройтись надо отправляя письма?

Да, по txt-файлику. Список адресов и один общий текст письма для всех адресов. И отправить по одному письму на каждый адрес из списка.

alexs777
() автор топика
Ответ на: комментарий от deterok

Раздел путаешь....

Если это переносить в JOB, то тогда весь форум нужно перенести туда-же. Любая работа должна быть оплачена.

alexs777
() автор топика

Perl

----------------------------------------------------------

http://learn.perl.org/examples/email.html

https://scriptingmysql.wordpress.com/2011/09/30/sending-and-managing-email-ac...

http://www.tutorialspoint.com/perl/perl_sending_email.htm

----------------------------------------------------------

Python

----------------------------------------------------------

https://docs.python.org/2/library/email-examples.html

https://en.wikibooks.org/wiki/Python_Programming/Email

http://stackoverflow.com/questions/882712/sending-html-email-using-python

int13h ★★★★★
()
Последнее исправление: int13h (всего исправлений: 1)
Ответ на: комментарий от int13h

int13h, Спасибо за ссылки! Это мне может пригодиться. Пока не разбирался.
Вопрос пока остаётся открытым:
Как заставить postfix отправить некий текст списку адресатов с интервалом 1 минута между письмами?

alexs777
() автор топика
Ответ на: комментарий от alexs777

Postfix - это MTA. Грубо говоря, это почтовое отделение в вашем городе (город - сервер).

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

Лучший вариант - написать скрипт на Python/Perl/Ruby/bash который будет брать список адресов абонентов из БД (SQLite, к примеру) или текстового файла и по планировщику (cron) отсылать письма через Ваш MTA, т.е. Postfix. Я кстати, советую Exim - проще синтаксис.

Итак, если про город и почтовое отделение:

Ваша задача создать контору которая будет печатать конверты, вкладывать в них письма, приклеивать адреса и отдавать на почту (работа скрипта), а почтовое отделение отсылать всем остальным (Postfix/Exim/sendmail)

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

int13h ★★★★★
()
Последнее исправление: int13h (всего исправлений: 1)
Ответ на: комментарий от int13h

int13h, Спасибо! Наглядное объяснение.
Обращаю своё внимание на скрипты.
Кстати, вот скрипт на php, который якобы рассылает письма по списку адресов:

$fileString = file_get_contents('emails.txt');
$emailsArray = explode("\n",$fileString);
$emailsCount = count($emailsArray);

$subject = "Тема письма";
$message = "Тело письма";

foreach($emailsArray as $email)
{
echo 'Sending email to: '.$email.'<br />';
echo $emailsCount.' left to send<br />';
mail($email,$subject,$message);
$emailsCount--;
} 
Но, видимо, он отправляет письма пачкой. Как заставить его отправлять по одному в минуту?
Если поставить его в cron, то нужно заставить его каждый раз отправлять письмо по следующему в списке адресу...

alexs777
() автор топика
Ответ на: комментарий от Alternating_Current

Alternating_Current

Если срочно надо...

Да, нужно закончить с этим делом, чем быстрее - тем лучше. А на изучение теории уйдет какое-то время.
Но изучать буду обязательно.

поставь sleep(60) внутри foreach

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

alexs777
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.