|
|
24.06.2015, 09:27
|
|
Rustam
Зарегистрирован: 2015-06-24
Сообщений: 11
|
Есть компонент "Множественный выбор файлов" в который загружаются от 1 до 10 изображений
после заполнения формы, данные из инпутов и изображения должны отправляться на почту
название поля imgup
в действие после добавления объекта добавил следующий код
отправляется файл с размером 0 байт
$mailer = new CMIMEMail();
$mailer->mailbody(strip_tags("Оценка кузовного ремонта по фото\r\nФИО: $f_fio\r\nТелефон: $f_tel\r\nМарка и модель: $f_marka\r\nОписание: $f_opisanie\r\nЭвакуатор: ($f_evakuator==1?'Требуется':'Не требуется')\r\nФото: $f_imgup"));
$mailer->attachFile($DOCUMENT_ROOT.$f_imgup_url, $f_imgup_name, "application/octet-stream");
$mailer->send(($cc_settings[EmailTo] ? $cc_settings[EmailTo] : $system_env[SpamFromEmail]), "klient@mail.ru", "klient@mail.ru", 'Письмо с сайта: Оценка кузовного ремонта по фото', 'Клиент');
Подскажите что нужно изменить что-бы файлы из этого поля отправлялись в аттаче на почту ?
($f_evakuator==1?'Требуется':'Не требуется') это условие тоже не работает в поле mailer
в админке это условие работает и выводится нужное значение
|
|
|
26.06.2015, 22:14
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Попробуйте вот так переделать:
Код:
$mailer = new CMIMEMail();
$mailer->mailbody(strip_tags("Оценка кузовного ремонта по фото\r\nФИО: $f_fio\r\nТелефон: $f_tel\r\nМарка и модель: $f_marka\r\nОписание: $f_opisanie\r\nЭвакуатор: ".($f_evakuator?'Требуется':'Не требуется')."\r\n"));
foreach($files_data as $file_object) {
$mailer->attachFile($DOCUMENT_ROOT . $file_object->Path, $file_object->Name ? $file_object->Name : "Вложение", "application/octet-stream");
}
$mailer->send(($cc_settings[EmailTo] ? $cc_settings[EmailTo] : $system_env[SpamFromEmail]), "klient@mail.ru", "klient@mail.ru", 'Письмо с сайта: Оценка кузовного ремонта по фото', 'Клиент');
|
|
|
29.06.2015, 06:17
|
|
Rustam
Зарегистрирован: 2015-06-24
Сообщений: 11
|
Спасибо за ответ, условие заработало результат отправляется на почту
".($f_evakuator?'Требуется':'Не требуется')."
но файлы не отправляются приходит письмо без вложений, если убрать цикл foreah приходит файл размером 0 байт
может для этих целей есть другой тип поля в которое можно отправить от 1 до 10 изображений с отправкой на email?
|
|
|
29.06.2015, 06:39
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Тогда перед foreach поставьте такую конструкцию:
Код:
$upfiles = nc_load_multifield(XXXX, $message);
$files_data = $upfiles->to_array();
где XXXX - номер поля imgup в компоненте. Думаю, уж после этого-то точно заработает.
|
|
|
30.06.2015, 15:21
|
|
Rustam
Зарегистрирован: 2015-06-24
Сообщений: 11
|
Сработало) теперь все файлы отправляются, но без расширения файла jpg, png и.тд
изменил Name : "Вложение" на Name : $file_name проблема решилась
теперь все изображения имеют имя первого файла, все 10 файлов с одним именем и расширением
|
|
|
30.06.2015, 17:49
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
$file_name использовать нельзя, ведь там цикл идет.
Если вы хотите приводить имя физического файла, когда не заполнен комментарий к файлу, тогда нужно соответствующую строчку переделать таким образом:
Код:
$mailer->attachFile($DOCUMENT_ROOT . $file_object->Path, $file_object->Name ? $file_object->Name : pathinfo($file_object->Path, PATHINFO_BASENAME), "application/octet-stream");
|
|
|
30.06.2015, 21:20
|
|
Rustam
Зарегистрирован: 2015-06-24
Сообщений: 11
|
Большое спасибо, данная строчка помогла, файлы отправляются с правильным именем.
|