|
|
06.03.2012, 13:08
|
|
makushkin
Макушкин Михаил Борисович
Зарегистрирован: 2010-11-18
Сообщений: 10
|
Цитата:так и не удается прикрепить нормальный файл!
название поля в котором содержится файл у вас какое? File ? оно вообще имеется в таблице компонента где описаны все поля?
|
|
|
06.04.2012, 15:34
|
|
Гость
Гость
|
та же проблема.
Название полей совпадает! файлы приходят либо битые, либо вообще пустые. Названия файлов переименовываются в noname
Помогает смена хостинга....
Что то на стороне netcat не так работает с прикреплением файлов к сообщению на некоторых хостингах.
На hts.ru точно не прикрепляются нормально. Техподдержка не смогла помочь - порекомендовали сменить хостинг.
|
|
|
06.04.2012, 16:39
|
|
Redox
Зарегистрирован: 2007-05-29
Сообщений: 13
|
А кто-нибудь подскажет как реализовать множественную загрузку файлов так, чтобы эти файлы крепились к письму?
В компонент добавляю поле file тип - множественная загрузка файлов
В альт. форме добавления пишу:
Код:".$f_file->settings->min(1)->max(3)->path('/feedback-files/')."
".$f_file->form()."<br />
В системных настройках компонента это:
Код:$f_file_tpl = array(
'prefix' => "<div>",
'record' => "<div>%i% - <a href='%Path%'>Посмотреть</a> </div>",
'divider' => " ",
'suffix' => "</div>",
'i' => 1
);
А как крепить их к письму?
Это:
Код:$mailer->attachFile($DOCUMENT_ROOT.$f_file_url, $f_file[name], 'application/octet-stream');
понятное дело не сработало
Выдало:Цитата:
Warning: nc_file_path(): Wrong field name or ID (file1) in /home/.../www/netcat/require/s_common.inc.php on line 2066
Fatal error: Cannot use object of type nc_multifield as array in /home/.../www/netcat/add.php(264) : eval()'d code on line 16
|
|
|
12.04.2012, 23:01
|
|
Гость
Гость
|
Вариант решени:
Name - поле для имени заполняющего форму посетителя сайта
email - поле для ввода email заполняющего форму посетителя сайта
Поле для загрузки файла имеет название file1.
В действии после добавления пишем:
Код:";
$to = "mail@domain.ru"; // Кто получит письмо
$from = "$f_email";// Адрес отправителя, т.е. от кого придёт письмо получателю
$from_name = "$f_Name"; // имя отправителя
$subject = "Тема письма"; // тема письма
$text = "<b>Привет!</b>"; // текст письма
function send_mail($to,$from,$from_name,$subject,$text,$file_name) {
$bound="1234";
$header="From: $from_name <$from>\n";
$header.="To: $to\n";
$header.="Subject: $subject\n";
$header.="MIME-Version: 1.0\n";
$header.="Content-Type: multipart/mixed; boundary=$bound\n";
$body="--$bound\n";
$body.="Content-type: text/html; charset=\"windows-1251\"\n";
$body.="Content-Transfer-Encoding: quoted-printable\n\n";
$body.="$text";
$file=file_get_contents($file_name);
$body.="\n\n--$bound\n";
$body.="Content-Type: application/octet-stream; ";
$body.="name=".basename($file_name)."\n";
$body.="Content-Transfer-Encoding:base64\n";
$body.="Content-Disposition:attachment\n\n";
$body.=base64_encode($file)."\n";
$body.="$bound--\n\n";
if(mail($to, $subject, $body, $header)) {
echo "<center>Письмо было успешно отправлено!</center>";
} else {
echo "<center>Сообщение не отправлено!</center>";
};
};
send_mail($to,$from,$from_name,$subject,$text,$file);
echo "
и на hts.ru работает - проверено
|
|
|
12.04.2012, 23:59
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Для отправки писем с вложением файлов не рекомендую использовать php ф-ию mail, которая используют юниксовый sendmail. На большинстве хостингах стоят ограничения на размер отправляемого письма через sendmail, поэтому рано или поздно упретесь в этот лимит.
Рекомендую использовать для отправки pear библиотеки и отправлять через SMTP с авторизацией. Потратите чуть больше времени на изучение примеров, зато будет вам универсальный вариант, работающий везде.
Temet nosce...
|
|
|
27.03.2013, 17:44
|
|
Гость
Гость
|
Никто случаем не реализовывал функцию отправки на email файлов из поля "множественная загрузка файлов" в форме обратной связи?
Буду благодарен за помощь.
|
|
|
28.03.2013, 00:20
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
"множественная загрузка файлов" - не пользуюсь этим.
В принципе в компоненте формыобратной связи в поле "действие после добавления" вам надо определить список файлов с именем и местом расположения (sql-запросом), а далее вызвать метод аттача этих файлов к формируемому письму.
Temet nosce...
|
|
|
08.04.2013, 17:32
|
|
Гость
Гость
|
DIGGY,
А если не секрет, то чем пользуетесь когда надо в форме загружать несколько файлов и отправлять их на e-mail менеждера?
|
|
|
08.04.2013, 22:21
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Цитата:DIGGY,
А если не секрет, то чем пользуетесь когда надо в форме загружать несколько файлов и отправлять их на e-mail менеждера?
Тут 2 части:
1. Загрузить файлы на сайт - думаю с этим вопросов нет.
2. Формирование письма, присоединение к нему файлов и отправка - тут пользуюсь библиотеками pear. Отправку писем делаю через SMTP с авторизацией, потому как на виртуальных хостингах есть ограничение на размер отправляемого письма через ф-ю mail.
Temet nosce...
|
|
|
31.01.2017, 16:47
|
|
Нерсесов Сергей Николаевич
Зарегистрирован: 2014-06-16
Сообщений: 35
|
Код:
<?
if($inside_admin) {
ob_end_clean();
header('Location: '.$goBackLink.'&inside_admin=1');
exit;
} else {
if($_POST['js'] == 1)
echo '{"status": 1}';
else{
echo ($IsChecked ? NETCAT_MODERATION_MSG_OBJADD : NETCAT_MODERATION_MSG_OBJADDMOD);
echo "".$goBack;
}
}
$subject = 'Заявка по акции - '.$_SERVER['HTTP_HOST'];
$text = "
<div>
<span><b>Имя:</b> $f_Name</span><br/>
<span><b>Email:</b> <a href='mailto:$f_Email'>$f_Email</a></span><br/>
<span><b>Телефон:</b> $f_phones</span>
</div>";
$mailer = new CMIMEMail();
$mailer->mailbody(strip_tags($text), $text);
$mailer->send($f_Email, $cc_settings['email'], $cc_settings['email'], $subject, $subject);
$mailer->send($cc_settings['email'], $f_Email, $f_Email, $subject, $subject);
$mailer->attachFile($DOCUMENT_ROOT.$f_upload_file_url, $f_upload_file[name], 'application/octet-stream');
die();
?>
У меня во такой код в действии после добавления. Письмо приходит но без вложения...
|