Рассылка массовой электронной почты: в html и текстом

Y

Yoko

Гость
Мега маил, рассылка массовой электронной почты, в html и текстом просто можно. Очень удобно.

Главное преимущество, что письма можно разбить по пакетам, например в одном пакете 100 писем и с задержкой отправки следующего пакета в 10 секунд ( это пример, выставляйте как вам удобно).
открыть includes/emailer.class.php

найти
PHP:
function send()
заменить на
PHP:
function send($email_format = 'text')
найти
PHP:
$this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $bb_cfg['board_email'] . "\n") . "Return-Path: " . $bb_cfg['board_email'] . "\nMessage-ID: <" . md5(uniqid(TIMENOW)) . "@" . $bb_cfg['server_name'] . ">\nMIME-Version: 1.0\nContent-type: text/plain; charset=" . $this->encoding . "\nContent-transfer-encoding: 8bit\nDate: " . date('r', TIMENOW) . "\nX-Priority: 0\nX-MSMail-Priority: Normal\nX-Mailer: Microsoft Office Outlook, Build 11.0.5510\nX-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441\nX-Sender: " . $bb_cfg['board_email'] . "\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '')  . (($bcc != '') ? "Bcc: $bcc\n" : '');
заменить на

PHP:
  if ($email_format == 'html')
{
// Build html header
$this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $bb_cfg['board_email'] . "\n") . "Return-Path: " . $bb_cfg['board_email'] . "\nMessage-ID: <" . md5(uniqid(time())) . "@" . $bb_cfg['server_name'] . ">\nMIME-Version: 1.0\nContent-type: text/html; charset=" . $this->encoding . "\nContent-transfer-encoding: 8bit\nDate: " . date('r', time()) . "\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\nX-MimeOLE: Produced By phpBB2\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : '');
}
else
{
// Build text header
$this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $bb_cfg['board_email'] . "\n") . "Return-Path: " . $bb_cfg['board_email'] . "\nMessage-ID: <" . md5(uniqid(TIMENOW)) . "@" . $bb_cfg['server_name'] . ">\nMIME-Version: 1.0\nContent-type: text/plain; charset=" . $this->encoding . "\nContent-transfer-encoding: 8bit\nDate: " . date('r', TIMENOW) . "\nX-Priority: 0\nX-MSMail-Priority: Normal\nX-Mailer: Microsoft Office Outlook, Build 11.0.5510\nX-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441\nX-Sender: " . $bb_cfg['board_email'] . "\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : ''); }
 

Вложения

  • megaemail.rar
    7.7 KB · Просмотры: 143

resonansER

Пользователь
Очень хорошее дополнение. Удобно, что можно отправлять пачками, а не всем сразу. ОТЛИЧНО!
 

resonansER

Пользователь
Сделал всё правильно, но при выборе из админки меню "mega mail" вылазит ошибка:
Код:
Notice: Use of undefined constant BB_MEGAMAIL - assumed 'BB_MEGAMAIL' in /var/www/xxxxxxxxx/data/www/xxxxxxxxxx.com/admin/admin_megamail.php on line 317
 
N

Nikolaich

Гость
resonansER, я не ставил, но попробуй раскомментировать эту строку в /admin/admin_megamail.php
Найти
PHP:
//define('BB_MEGAMAIL', $table_prefix.'megamail');
Заменить на
PHP:
define('BB_MEGAMAIL', $table_prefix.'megamail');
 

Varius

Пользователь
вообще не вижу смысла менять файл emailer.class.php и с стандартным все прекрасно работает
 

resonansER

Пользователь
Nikolaich, когда раскомментировал, стало ругаться именно на эту срочку
PHP:
define('BB_MEGAMAIL', $table_prefix.'megamail');
. она у меня под № 37.
--- добавлено: Dec 2, 2011 6:03 AM ---
Varius, что с оригинальным emailer.class.php что с модифицированным, вылазит ошибка, которую я выше описал :(
Хак очень полезный, так как позволяет отсылать с временными промежутками письма. Для огромной БД пользователей это прекрасная панацея. Помогите пожалуйста.
 
N

Nikolaich

Гость
resonansER, ну смысл в том, что у тебя не определена константа. Тебе ее надо определить перед использованием.
 
F

frank

Гость
resonansER, в init_bb.php после define('BB_WORDS', 'bb_words'); добавь define('BB_MEGAMAIL', 'bb_megamail'); и define('BB_MEGAMAIL', $table_prefix.'megamail'); обратно закомментируй.
 

resonansER

Пользователь
frank, благодарю! Ошибка ушла. На днях буду тестировать данный хак с мониторингом нагрузки на железо.
 

Varius

Пользователь
resonansER,хм... хак?
И что его тестировать делал по 10 тыс рассылку и норм. (с) Все дело в волшебных пузырьках
 
Сверху