У меня такая проблема. Я пишу утилитку, работающую вне форума.
Надо отправить сообщение на e-mail некоторым участникам форума.
Я просто взял этот фрагмент из других php файлов форума. Хочу использовать шаблон 'admin_send_email'.
Массивы $board_config и $bcc_list я предварительно заполнил как они должны быть.
$phpbb_root_path = './../../';
require($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'includes/emailer.' . $phpEx);
$subject='Access notification';
$message='Текст письма';
$emailer = new emailer($board_config['smtp_delivery']);
$emailer->from($board_config['board_email']);
$emailer->replyto($board_config['board_email']);
for ($i = 0; $i < count($bcc_list); $i++) {
$emailer->bcc($bcc_list[$i]);
}
$emailer->use_template('admin_send_email');
$emailer->email_address($board_config['board_email']);
$emailer->set_subject($subject);
$emailer->assign_vars(array(
'SITENAME' => $board_config['sitename'],
'BOARD_EMAIL' => $board_config['board_email'],
'MESSAGE' => $message)
);
$emailer->send();
$emailer->reset();
Но все это останавливается на вызове функции use_template().
В чем же дело? Подскажите пожалуйста. Или как еще можно отправить e-mail без template?
И еще вопросик по вышеприведенному коду. В моей программке задано $phpbb_root_path = './../../'; Именно это значение будет использоваться в скрипте emailer.php (т.к. я его вызываю отсюда) или не это? Сдается мне, что там оно должно быть такое './../';
Как использовать emailer.php ?
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 18 лет 3 месяца
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 20 лет 10 месяцев
- Поблагодарили: 2 раза
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 18 лет 3 месяца
Просто все строки ниже use_template() не выполняются. (При отладке я ставил echo 12345 перед и после этой строки
)
Никаких ошибок не выдает. Ничего такого 'Could not find email template file' не пишет.
Я попытался копнуть глубже, в файле emailer.php работа скрипта останавливается на строке if (!@file_exists(@phpbb_realpath($tpl_file)))
Хотя предыдущая строчка $tpl_file = $phpbb_root_path . 'language/lang_' . $template_lang . '/email/' . $template_file . '.tpl'; выдает вроде правильный путь к файлу tpl.

Никаких ошибок не выдает. Ничего такого 'Could not find email template file' не пишет.
Я попытался копнуть глубже, в файле emailer.php работа скрипта останавливается на строке if (!@file_exists(@phpbb_realpath($tpl_file)))
Хотя предыдущая строчка $tpl_file = $phpbb_root_path . 'language/lang_' . $template_lang . '/email/' . $template_file . '.tpl'; выдает вроде правильный путь к файлу tpl.
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 20 лет 10 месяцев
- Поблагодарили: 2 раза
Вставьте в начале своего скрипта
... и будете видеть текст ошибки.
Код: Выделить всё
error_reporting(E_ALL);
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 18 лет 3 месяца
-
- phpBB 1.0.0
- Сообщения: 3
- Стаж: 18 лет 9 месяцев
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 18 лет 3 месяца
Спасибо MNU, все заработало!
Только почему-то при локальном тестировании моего скрипта на домашнем форуме при подключении common.php вылезает весь overall header, footer и т.д.
А после закачки на сервер все работает нормально. Хотя наверное при какой-либо ошибке при отправке почты этот overall header тоже вылезет вместе с ошибкой e-mail failed. 
Только почему-то при локальном тестировании моего скрипта на домашнем форуме при подключении common.php вылезает весь overall header, footer и т.д.

