modMail
Последнее обновление Aug 17th, 2019 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$306 per month—let's make that $500!
Learn moreЧто такое modMail?¶
modMail
абстрактный класс, который можно расширить для предоставления почтовых сервисов для Revolution. Он не может быть запущен сам по себе, но должен быть расширен с помощью класса реализации (такого как PHPMailer
).
Что такое modPHPMailer?¶
modPHPMailer
- это класс, который расширяет modMail
, чтобы обеспечить реализацию класса PHPMailer
с открытым исходным кодом.
Другие реализации ModMail¶
- modSwiftMailer - Может быть загружен через Управление пакетами.
Использование¶
Следующий пример основан на нативном modPHPMailer
, который поставляется с MODX Revolution.
Допустим, у нас есть шаблон электронной почты в чанке myEmailTemplate
. Мы хотим отправить его по электронной почте на адрес [email protected]
с адресом «От» [email protected]
. Мы также хотим, чтобы это было электронное письмо в формате HTML. Вот как мы это сделаем:
$message = $modx->getChunk('myEmailTemplate');
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'[email protected]');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Johnny Tester');
$modx->mail->set(modMail::MAIL_SUBJECT,'Check out my new email template!');
$modx->mail->address('to','[email protected]');
$modx->mail->address('reply-to','[email protected]');
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
$modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
Легко, нет?
Обратите внимание, что мы должны запустить reset()
, если мы хотим отправить почту снова: это сбрасывает все поля на пустые. Кроме того, приведенные выше поля являются необязательными (точно так же, как и PHPMailer), так что если вы не хотите указывать 'reply-to' (хотя мы рекомендуем это!), Вы можете это сделать.
Кроме того, если вы хотите отправить электронное письмо на несколько адресов, вы можете просто снова позвонить по адресу ('to'), например так:
$modx->mail->address('to','[email protected]');
$modx->mail->address('to','[email protected]');
И, наконец, приведенный выше пример кода отправит сообщение в наш error.log, если письмо не было отправлено по какой-либо причине (обычно это неверная конфигурация сервера).
Плейсхолдеры в вашем чанке¶
В приведенном выше примере, modX.getChunk был использован в качестве почтового сообщения. Смотрите документацию по этой функции, чтобы узнать, как использовать ее необязательный второй аргумент. Что касается modMail
, то используемые плейсхолдеры полностью зависят от вас: вам даже не нужно использовать getChunk
вообще. Вы также можете легко передать modMail::MAIL_BODY
, устанавливающий статическую строку.
Что если я хочу использовать другой класс электронной почты?¶
Просто - просто расширьте modMail
этим классом, затем загрузите свой класс через getService. Вы получите всю функциональность modMail
, но для этого вам потребуется предоставить класс-оболочку (например, modPHPMailer
).
Смотрите также¶
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$306 per month—let's make that $500!
Learn more