php-скрипт для массовой рассылки писем.

so_mailer (Simple-order mailer) предназначен для массовой рассылки писем и тех случаев, когда в одном скрипте по циклу функцией mail() это делать нельзя по причине ограничений либо на время выполнения скрипта (Fatal error: Maximum execution time of N second exceeded), либо на количество отправленных сообщений в период времени, накладываемого хостингом.

При своей работе придерживается следующего алгоритма.

  1. Вместо вызова стандартной PHP-функции mail, необходимо использовать so_mail с теми же параметрами
  2. so_mail вместо того, чтобы немедленно передать письмо почтовому серверу, кладёт всю информацию о нём в базу данных
  3. Выполняемый ежеминутно cron-скрипт берёт из таблицы несколько отмеченных как «неотравленные» писем, отправляет и помечает как «отправленные»
  4. Количество писем отправляемых за раз можно варьировать.

Пример использования, для случая, когда ваш домен example.com, а папка so_mailer лежит в /libs корня сайта

1. Распаковать дамп init.sql в целевую БД

2. Прописать в conf.php параметры подключения к БД и размер кванта отправляемых за раз писем

3. Отправка письма

<?php
include_once($_SERVER['DOCUMNET_ROOT']."/libs/so_mailer/so_mailer.lib.php");
so_mail("test@test.ru","test message","test-message body","From: author@mail.ru");
?>

4. Настройка cron.

Необходимо в cronteab прописать следующую строчку

* * * * * wget -O /dev/null -o /dev/null http://{ваш домен}/libs/so_mailer/cron.php

Скачать


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