Отправка почты через API MODX | сервис MODX modMail




И так часто стоит задача отпралять письма клиентам на почту. Это можно сделать несколькими способами от установки специальных почтовых плагинов типо FORMIT, заканчивая написанием свого простенького скрипта на PHP с функцией mail(). 

Однако на более серъездных проектах требуется подтверждение почты через SMTP, которая задается в настройках и там уже наш скриптих на PHP работать не будет, т.к нужна обязательная аутификация

 

Как настроить SMPT в админке MODX можете посмотреть на скриншоте ниже

 

А вот для отправки письма, нужно создать сниппет и разместить там код (Код взят с боевого проекта, многое может не подойти). Здесь у нас идет отправка письма и прикрепление к нему excel с номенклатурой заказа для дальнейшего импорта в 1С.

 

$filename = "phpexcel/$order_id.xls"; //Имя файла для прикрепления

$to = "perfkirill@yandex.ru"; //Кому

$subject = "Заказ на сайте  $order_id"; //Тема
$message = "

Номер заказа: $order_id <br>
Клиент: $user_name <br>
E-mail: $user_email <br>
Телефон: $user_phone <br>
Организация: $user_ur_name <br>
Комментарий: $user_comment <br>
<br><br>

Сумма заказа: $cart_cost <br>

"; //Текст письма


/*Активируем почтовый сервис MODX*/
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
$modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name')); /*Адрес получателя нашего письма*/
$modx->mail->address('to', $to); /*Заголовок сообщения*/
$modx->mail->set(modMail::MAIL_SUBJECT, $subject); /*Подставляем чанк с телом письма (предварительно его нужно создать)*/
$modx->mail->set(modMail::MAIL_BODY,$message ); //Прикрепляем файл
$modx->mail->attach($filename);
/*Отправляем*/
$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();


Просмотров: 248