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

Тема в разделе "Модификации для TorrentPier (архив)", создана пользователем Yoko, 18 ноя 2011.

  1. Yoko

    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 КБ
      Просмотров:
      134
    resonansER нравится это.
  2. resonansER

    resonansER Пользователь

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

    resonansER Пользователь

    Сообщения:
    90
    Симпатии:
    6
    Сделал всё правильно, но при выборе из админки меню "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 
     
  4. Nikolaich

    Nikolaich Гость

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

    Varius Пользователь

    Сообщения:
    422
    Симпатии:
    44
    вообще не вижу смысла менять файл emailer.class.php и с стандартным все прекрасно работает
     
  6. resonansER

    resonansER Пользователь

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

    Nikolaich Гость

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

    frank Гость

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

    resonansER Пользователь

    Сообщения:
    90
    Симпатии:
    6
    frank, благодарю! Ошибка ушла. На днях буду тестировать данный хак с мониторингом нагрузки на железо.
     
  10. Varius

    Varius Пользователь

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

Поделиться этой страницей