Не работает отправка файла в FormItAutoResponder
Необходимо сделать, чтобы после заполнения формы письмо с прикреплённым файлом отправлялось клиенту. Письмо отправляется, но без файла, а файл прикрепить не получается. Не могу понять в чём причина.
Вызов FormIt:
Форма для заполнения:
Шаблон письма:
Здравствуйте, [[+name]]
Вы заказали "[[+tip_zavoda]]", который находится в прикреплённом PDF файле
В течении двух рабочих дней, наш менеджер с Вами свяжется.
—
Ваши контактные данные:
Вызов FormIt:
[[!AjaxForm?
&snippet=`FormIt`
&form=`tpl.forma.calc`
&hooks=`FormItAutoResponder`
&fiarTpl=`emailcl_tpl_calk`
&fiarSubject=`Тест ответного письма кальулятора`
&fiarFrom=`test@test.ru`
&fiarFromName=`ООО Сельхозлидер`
&fiarCC=`test@test.ru`
&fiarFiles=`/public_html/selhozlider.ru/IMG_1035.JPG`
]]
Форма для заполнения:
<form action="[[~[[*id]]]]" method="post" class="calc-form" id="calc_action" enctype="multipart/form-data">
<div class="calc-group">
<label class="calc-label" for="af_name_calc">Имя<span class="required">*</span></label>
<div class="calc-control">
<input id="af_name_calc" class="calc-form" name="name" value="[[!+fi.af_name_calc]]" placeholder="" type="text">
<span class="error_name"></span>
</div>
</div>
<div class="calc-group">
<label class="calc-label" for="af_tel_calc">Телефон<span class="required">*</span></label>
<div class="calc-controls">
<input id="af_tel_calc" class="calc-form input-phone" name="tel" value="[[!+fi.af_tel_calc]]" placeholder="" type="text">
<span class="error_email"></span>
</div>
</div>
<div class="calc-group">
<label class="calc-label" for="af_email_calc">E-mail<span class="required">*</span></label>
<div class="calc-controls">
<input id="af_email_calc" class="calc-form" name="email" value="[[!+fi.af_email_calc]]" placeholder="" type="email">
<span class="error_email"></span>
</div>
</div>
<div class="calc-group">
<div class="calc-controls checkbox">
<label for="policy" class="calc-policy">Нажимая на кнопку, Вы соглашаетесь с нашей
<a href="/assets/files/policy.pdf" target="_blank">политикой конфиденциальности</a></label>
</div>
</div>
<div class="calc-group">
<div class="calc-controls">
<button type="submit" class="calc-btn">Получить расчёт</button>
<div class="clearfix"></div>
</div>
</div>
<input name="calc_action" value="" type="hidden">
<input name="tip_zavoda" value="Расчёт стоимости пекарни с объемом производства 3000 килограмм в день (оборудование без помещения)" type="hidden">
-->Шаблон письма:
Здравствуйте, [[+name]]
Вы заказали "[[+tip_zavoda]]", который находится в прикреплённом PDF файле
В течении двух рабочих дней, наш менеджер с Вами свяжется.
—
Ваши контактные данные:
- Телефон: [[+tel]]
- E-mail: [[+email]]
Комментарии: 2
Мое решение:
1. В форму вставляем скрытое поле с файлом
2. Удаляем хук email
3. Добавляем свой хук (email_file)
1. В форму вставляем скрытое поле с файлом
<input type="hidden" name="attach_file" value="IMG_1035.JPG" />
2. Удаляем хук email
3. Добавляем свой хук (email_file)
<?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;
Большое спасибо, Ваш комментарий помог решить проблему. Правда, с помощью предложенного хука как-то странно формируется письмо, но я с копировал часть с файлом в действующий хук и помогло. Спасибо.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.