Last active
June 17, 2020 10:24
-
-
Save snnwolf/f80a659fb4a3dc91b69d52dde69ada8d to your computer and use it in GitHub Desktop.
Сниппет для #modx для отправки уведомления на мыло с прикреплением файла
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// взято здесь https://ilyaut.ru/reposts/sending-mail-through-modmail/ | |
/** | |
* Перед использованием установить переменные: emailsender, site_name | |
* Опции: | |
* [$html] отправить в виде html, если не задан, останется текст | |
* $address строка адресов через "," | |
* $subject | |
* [$subject_prefix] префикс для сообщения напр, "[site_name] Вам письмо" | |
* $message | |
* [$filepath] прикрепить файл, если указан | |
* [$filename] имя файла, если указан $filepath | |
* [$return] вовзращать результат работы сниппета | |
*/ | |
if (empty($address)) { | |
$modx->log(modX::LOG_LEVEL_ERROR,'sendMail: empty address'); | |
return '[email: noaddress]'; | |
} | |
if (!isset($subject_prefix)) { | |
$subject_prefix = sprintf('[%s]', $modx->getOption('site_name')); | |
} | |
if (empty($subject)) { | |
$subject = '[Без темы]'; | |
} | |
if (empty($message)) { | |
$message = '[Пустое сообщение]'; | |
} | |
/*Активируем почтовый сервис 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')); | |
/*Адрес получателя нашего письма*/ | |
$address = explode(',', $address); | |
if (is_array($address)) { | |
foreach($address as $_) { | |
$modx->mail->address('to', trim($_)); | |
} | |
} | |
/*Заголовок сообщения*/ | |
$full_subject = $subject; | |
if ($subject_prefix) { | |
$full_subject = $subject_prefix . " " . $subject; | |
} | |
$modx->mail->set(modMail::MAIL_SUBJECT, $full_subject); | |
/*Подставляем чанк с телом письма (предварительно его нужно создать)*/ | |
$modx->mail->set(modMail::MAIL_BODY, $message);//$modx->getChunk('myEmailTemplate')); | |
/*Отправляем*/ | |
if (!empty($html)) { | |
$modx->mail->setHTML(true); | |
} | |
// с формы: | |
// <input id="upfile" type="file" name="photo" value="[[!+fi.photo]]" /> | |
// в сниппете | |
// $file = $_FILES['photo']['tmp_name']; // путь к файлу | |
// $name = $_FILES['photo']['name']; // имя файла | |
// прикрепляем файл | |
if ($filepath) { | |
if (!is_file($filepath)) { | |
$modx->log(modX::LOG_LEVEL_ERROR, sprintf('sendMail: Файл %s не найден', $filepath)); | |
} else { | |
if (empty($filename)) { | |
$filename = 'noname-file'; | |
} | |
$modx->mail->attach($filepath, $filename); | |
} | |
} | |
if (!$modx->mail->send()) { | |
//var_dump($modx->mail->mailer->ErrorInfo); | |
$modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo); | |
if ($return) { | |
return '[email:fail]'; | |
} | |
} | |
$modx->mail->reset(); | |
if ($return) { | |
return '[email:ok]'; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment