Email log

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
darlov
Сообщения: 204
Зарегистрирован: 2012.01.31, 16:09

Email log

Сообщение darlov »

Привет всем. Подскажите пожалуйста в проблеме, необходимо собирать все отправленные письма с сайта в базе т.е. вести лог. К тому же нужно сохранять сам текст письма. Использую Swiftmailer, письма оформляются с помощью темплейтов view.mptl как мне получить содержимое письма. Спасибо!!!
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Email log

Сообщение ElisDN »

Mailer::EVENT_AFTER_SEND
Аватара пользователя
darlov
Сообщения: 204
Зарегистрирован: 2012.01.31, 16:09

Re: Email log

Сообщение darlov »

ElisDN писал(а):Mailer::EVENT_AFTER_SEND
А как использовать эту константу?
А как получить содержимое письма?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Email log

Сообщение ElisDN »

Код: Выделить всё

'mailer' => [
    ...
    'on afterSend' => function (MailEvent $event) {
        echo $event->message->toString();
        echo $event->isSuccessfull;
    },
],
Аватара пользователя
darlov
Сообщения: 204
Зарегистрирован: 2012.01.31, 16:09

Re: Email log

Сообщение darlov »

Немного по другому сделал, не через конфиг.

Код: Выделить всё

 $mailer=\Yii::$app->mailer;
        $message = $mailer->compose($command->view, $command->params);
        $message->setFrom($command->from);
        $message->setTo($command->to ?: \Yii::$app->params['robotEmail']);
        $message->setSubject($command->subject);
        $mailer->on(Mailer::EVENT_AFTER_SEND,function($event){
            echo $event->message->toString();
            echo $event->isSuccessfull; die();
        });
        return $message->send();
Ошибка, Getting unknown property: yii\mail\MailEvent::isSuccessfull

Так же еще вопрос, а как правильно вставить этот текст, тут же письмо полностью с заголовками?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Email log

Сообщение ElisDN »

Код: Выделить всё

$event->message->getSwiftMessage()->...
$event->isSuccessful
Аватара пользователя
darlov
Сообщения: 204
Зарегистрирован: 2012.01.31, 16:09

Re: Email log

Сообщение darlov »

ElisDN писал(а):

Код: Выделить всё

$event->message->getSwiftMessage()->...
$event->isSuccessful

Код: Выделить всё

$event->message->getSwiftMessage() 
В нем не нашел само тело письма, getBody() возвращает пустоту. Каким то образом нужно достучаться до Swift_Mime_SimpleMessage, но у меня не получилось.
Пришлось делать костыльно

Код: Выделить всё

preg_match('#<html(.+?)>(.+?)</html>#s',$event->message->getSwiftMessage()->toString(),$res); 
Если есть совет, может как то по другому все сделать, буду благодарен.
А так спасибо за информацию и наводку.
Ответить