UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: htmllancer от 28 Марта 2017, 13:08:06

Название: umiMail не работает в custom макросах
Отправлено: htmllancer от 28 Марта 2017, 13:08:06
Доброго,

никак не могу заставить работать umiMail в кастомных макросах. В отдельном файле - c подключением standalone.php все работает нормально. Как только пы таюсь тоже самое сделать в custom.php (без подключения standalone) письма перестают ходить.

Если делать в custom отправку почты напрямую, без umiMail то почта тоже ходит нормально.
Что я не так делаю?

$oMail = new umiMail();
var_dump($oMail);
ошибка
Название: Re: umiMail не работает в custom макросах
Отправлено: aghigay от 28 Марта 2017, 14:45:16
Самый простой способ понять это - увидеть как это реально работает.
Откройте файл /classes/modules/content/__events.php и найдите там umiMail

Вы увидите, что для отправки необходимо:
1. заполнить нужные поля
2. отправить.

В вашем примере нет ни того, ни другого.
Вот пример кода:
$mail_message = new umiMail();
$from = $regedit->getVal("//settings/email_from");
$mail_message->setFrom($from);
$mail_message->setPriorityLevel("high");
$mail_message->setSubject(getLabel('label-notification-mail-header'));
list ($body) = def_module::loadTemplatesForMail("mail/notify", "body");
$block['notify_header'] = getLabel('label-notification-mail-header');
$block['page_header'] =  $ePage->getName();
$block['publish_comments'] = $publishComments;
$domain = domainsCollection::getInstance()->getDomain($ePage->getDomainId());
$page_host = getSelectedServerProtocol() . "://".$domain->getHost().umiHierarchy::getInstance()->getPathById($page_id);
$block['page_link'] = $page_host;
$mail_html = def_module::parseTemplateForMail($body, $block, $page_id);
$mail_message->addRecipient($user_email);
$mail_message->setContent($mail_html);

$mail_message->commit();
$mail_message->send();
Название: Re: umiMail не работает в custom макросах
Отправлено: htmllancer от 28 Марта 2017, 15:05:12
Не много не поняли Вы меня, у меня в custom.php

$mail = new umiMail();
var_dump($mail);

выдает ошибку а не umiMail. Должно быть что-то типа
object(umiMail)#4 (24) { ["template":"umiMail":private]=> string(7) "default" ["is_commited":"umiMail":private]=>
Название: Re: umiMail не работает в custom макросах
Отправлено: aghigay от 28 Марта 2017, 17:14:17
Проверяйте, правильно ли обозначен класс, правильно ли обозначен метод внутри класса. Проверяйте наличие umiMail (может у вас старая UMI и в ней как-то иначе реализована отправка писем).
Название: Re: umiMail не работает в custom макросах
Отправлено: htmllancer от 28 Марта 2017, 17:25:05
Проверяйте, правильно ли обозначен класс, правильно ли обозначен метод внутри класса. Проверяйте наличие umiMail (может у вас старая UMI и в ней как-то иначе реализована отправка писем).

<?php

class custom extends def_module
{
public function sender($method_name, $args) {
             $oMail = new umiMail();
             var_dump($oMail)
        }
.....
Название: Re: umiMail не работает в custom макросах
Отправлено: htmllancer от 28 Марта 2017, 17:26:05
Проверяйте, правильно ли обозначен класс, правильно ли обозначен метод внутри класса. Проверяйте наличие umiMail (может у вас старая UMI и в ней как-то иначе реализована отправка писем).

Версия последняя lite

<?php

class custom extends def_module
{
public function sender($method_name, $args) {
             $oMail = new umiMail();
             var_dump($oMail)
        }
.....