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

Kryl

Заблокирован
Обратите внимание, если вы хотите заключить сделку с этим пользователем, что он заблокирован.
Адаптированная версия https://torrentpier.com/forum/threads/rassylka-massovoj-ehlektronnoj-pochty-v-html-i-tekstom.471/

Автор мода - Yoko
Адаптировал - KRYL
Версия TP - 2.1.5
Изменения BD - да
Установка - легко

PHP:
<?

// Раскидать фалы по папкам ....

// Запрос в базу

CREATE TABLE IF NOT EXISTS `bb_megamail` (
  `mail_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `mailsession_id` varchar(32) NOT NULL,
  `group_id` mediumint(8) NOT NULL,
  `email_subject` varchar(60) NOT NULL,
  `email_body` text NOT NULL,
  `batch_start` mediumint(8) NOT NULL,
  `batch_size` smallint(5) unsigned NOT NULL,
  `batch_wait` smallint(6) NOT NULL,
  `status` smallint(1) NOT NULL,
  `user_id` mediumint(8) NOT NULL,
  `email_format` smallint(1) NOT NULL,
  `email_include_to` smallint(1) NOT NULL,
  PRIMARY KEY (`mail_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

//-------------------------------------------------------
// Открыть
/library/includes/init_bb.php
// Найти
define('BB_WORDS',                'bb_words');
// Ниже добавить
define('BB_MEGAMAIL',             'bb_megamail');
//-------------------------------------------------------

// Открыть
/library/includes/classes/emailer.php

// Найти
function send
// Заменить на
function send($email_format = 'text')
// Найти
        // Build header
        $type = ($email_format == 'html') ? 'html' : 'plain';
        $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/$type; 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" : '');

        // Заменить на

        // Build header
        $type = ($email_format == 'html') ? 'html' : 'plain';
          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" : ''); }

// Открыть
/library/includes/language/main.php
// Добавить в конец
$lang['Megamail_Explain'] = 'Здесь вы можете написать сообщение для всех ваших пользователей, или для всех пользователей определенной группы.
Это должно обойти таймаут и серверную нагрузки. Письма будут сохранены в базе данных, потом их надо после отправки будет удалить. Вы можете закрыть окно, если вы хотите приостановить массовую рассылку почты (текущий пакет будет разослан). Позже вы можете просто продолжить, где вы остановились. <br />';
$lang['megamail_header'] = 'Ваша E-mail-Рассылка';
$lang['megamail_id'] = 'Mail-ID';
$lang['megamail_batchstart'] = 'Обработанные';
$lang['megamail_batchsize'] = 'Письма в пакете по';
$lang['megamail_batchwait'] = 'Пауза';
$lang['megamail_created_message'] = 'Массовая Mail был сохранен в базе данных.<br /><br/> Чтобы начать передачу %sнажмите сюда%s или подождите пока вас вернет назад (%s sec) принимает вас есть...';
$lang['megamail_send_message'] = 'текущий пакет (%s - %s) было отправлено .<br /><br/> Чтобы продолжить отправку %sнажмите сюда%s или подождите пока вас вернет назад (%s sec) принимает вас есть...';
$lang['megamail_status'] = 'Статус';
$lang['megamail_proceed'] = '%sЖмем для продолжения отправки%s';
$lang['megamail_done'] = 'Отправлено';
$lang['megamail_none'] = 'Нет записей.';

$lang['megamail_email_include_to'] = 'Выберите:';

$lang['megamail_email_format'] = 'Формат маила';
$lang['megamail_email_format_html'] = 'HTML';
$lang['megamail_email_format_text'] = 'ТЕКСТ';
$lang['group_name'] = 'Название группы';
$lang['FINISH'] = 'Успешно отправлены!';

// так же прописать ланги в английском и украинском main.php (что бы не было нотисов)


// Отредактировать файл , поменять значение на свой домен
admin_send_html_email.html

Выделить нужное на странице .
Перейти на сервис

Please Login or Register to view hidden text.


Там получить html версию страницу . Обернуть код в тег <BODY>...</BODY>
555002.jpg 555003.jpg 555004.jpg 555005.jpg 555006.jpg 555007.jpg


screencapture-60-fps-org-admin-index-php-1492085386764.png screencapture-60-fps-org-admin-index-php-1492085414000.png screencapture-mail-yandex-ru-1492085071132.png
 

Вложения

  • Рассылка массовой электронной почты.zip
    17.2 KB · Просмотры: 28

vitalix

Пользователь
Вот это круто. Спасибо большое, уже затестил - всё работает.
Но почему-то по 2 письма шлёт ?
 
Последнее редактирование:

Kryl

Заблокирован
Обратите внимание, если вы хотите заключить сделку с этим пользователем, что он заблокирован.
vitalix,
а фиг знает ...
может что то не так прописал ?
 

vitalix

Пользователь
да ещё это после отправки в админке - если подождать возврата

Template->make_filename(): Error - template file not found:

styles/templates/default/error_body.tpl

Не хватает файла ?
 

Kryl

Заблокирован
Обратите внимание, если вы хотите заключить сделку с этим пользователем, что он заблокирован.
У меня вроде не было такой ошибки ..
да и файла такого нет ..
 

Kryl

Заблокирован
Обратите внимание, если вы хотите заключить сделку с этим пользователем, что он заблокирован.
Привет , что то не работает, ошибок нет, при выборе группы отправка идет, при выборе всех пользователей, отправка идет но писем в почте нет .

... может кто сталкивался .
 

ErR

Пользователь
Привет , что то не работает, ошибок нет, при выборе группы отправка идет, при выборе всех пользователей, отправка идет но писем в почте нет .

... может кто сталкивался .

Возможно что-то с самим почтовиком? Отправка через SMTP?
 

Kryl

Заблокирован
Обратите внимание, если вы хотите заключить сделку с этим пользователем, что он заблокирован.
Сверху