Прикрепить письмо
Версия MODX: Revolution
Доброго дня. Нужно в письмо-автоответ (через fiar или какой-либо иной вариант), которое приходит пользователю после отправки обычной формы обратной связи AjaxForm+FI прикрепить файл с сайта. Как лучше сделать, может кто подскажет?
Комментарии (4)
Для добавления комментариев вы должны авторизоваться или зарегистрироваться.
Андрей 07.12.2018 16:51 #
https://github.com/Sterc/FormIt/blob/develop/core/components/formit/src/FormIt/Hook/Autoresponder.php#L64
Ну или как вариант можно в письме просто ссылку на файл присылать.
Dank 08.12.2018 13:28 #
{'!AjaxForm'|snippet:[
'hooks' => 'email,FormItAutoResponder',
'form' => '@FILE chunks/download/form.tpl',
'validate' => 'mail7:required',
'validationErrorMessage' => 'Вам необходимо заполнить поле email'
'emailTo' => 'email'|config,
'emailFrom' => 'email'|config,
'emailSubject' => 'Заказ файла',
'emailTpl' => '@FILE chunks/download/email.tpl',
'fiarFromName' => 'Название компании',
'fiarFrom' => 'email'|config,
'fiarTpl' => '@FILE chunks/download/emailFiar.tpl',
'fiarSubject' => 'Заказ файла',
'fiarToField' => 'mail7',
'fiarFiles' => 'file.jpg'
]}
Может где ошибку не вижу или это рассчитано на Formit, а не на AjaxForm?
Пока поставила вместо хука email — сниппет такого содержания:
<?php
$pdo = $modx->getService('pdoTools');
$siteName = $modx->getOption('site_name');
$emailsender = $modx->getOption('emailsender');
$emailTo = $modx->getOption('emailTo', $scriptProperties, $emailsender, true);
$fields = $hook->getValues();
$message = $pdo->getChunk('email', $fields);
$subject = $modx->getOption('emailSubject', $scriptProperties, $siteName, true);
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY, $message);
$modx->mail->set(modMail::MAIL_FROM, $emailsender);
$modx->mail->set(modMail::MAIL_FROM_NAME, $siteName);
$modx->mail->set(modMail::MAIL_SUBJECT, $subject);
$modx->mail->address('to', $emailTo);
$modx->mail->address('reply-to', $emailsender);
if(!empty($fields['attach_file'])) {
$modx->mail->attach($modx->getOption('base_path').$fields['attach_file']);
}
$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();
return true;
(в форму добавляется input type=«hidden» name=«attach_file» value=«Файл.jpg»)
Но крепит он файл к письму админа, пользователю пустое приходит.
Андрей 08.12.2018 17:58 #
Рабочий код formIt если что:
Dank 08.12.2018 19:53 #