В данной статье мы вам расскажем, как отправить письмо на электронную почту с помощью API MODx Revolution. Думаем, бывалые разработчики уже сталкивались с ограничениями FormIt и данная статья будет вам полезной.
В MODx Revolution за отправку писем отвечает абстрактный класс modMail, с помощью которого можно легко отправлять письма.
Пример
Приведем пример кода, который отправит письмо с ящика me@example.com на ящик user@example.com письмо, содержание которого находится в чанке myEmailTemplate.
$message = $modx->getChunk('myEmailTemplate'); $modx->getService('mail', 'mail.modPHPMailer'); $modx->mail->set(modMail::MAIL_BODY,$message); $modx->mail->set(modMail::MAIL_FROM,'me@example.org'); $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','user@example.com'); $modx->mail->address('reply-to','me@xexample.org'); $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();
Как видите все достаточно просто. Кроме того, мы можем отправить письмо сразу на несколько адресов, используя такую конструкцию:
$modx->mail->address('to','user@example.com'); $modx->mail->address('to','mom@example.org');
Также можем добавить к письму вложения такой строкой:
$modx->mail->attach($attachment);
Примечание: в переменной $attachment хранится абсолютный путь до файла от корня сервера.
Тело письма вы можете легко изменять с помощью функции getChunk, про которую мы вам в дальнейшем обязательно расскажем.
Кроме того, используя события системы и компонентов вы можете легко уведомлять администратора сайта о всевозможных изменениях.
В статье были использованы материалы из официальной документации к CMS MODx Revolution.