|
|
|
| Здравствуйте! Попытался отправить скриптом представленного на сайте doc документ, но потерпел фиаско! Уважаемые как можно отправить прикрипленным doc документ, а то тот вариант толлько фоты шлет? | |
|
|
|
|
|
|
|
для: BMW
(24.07.2008 в 14:46)
| | Какой - тот?
Вы никакой не показали. | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2008 в 15:16)
| |
// Если поле выбора вложения не пустое - закачиваем его на сервер
if (!empty($_FILES['mail_file']['tmp_name']))
{
// Закачиваем файл
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
$thm = $_POST['mail_subject'];
$msg = $_POST['mail_msg'];
$mail_to = $_POST['mail_to'];
// Отправляем почтовое сообщение
if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, $picture);
// Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)
function send_mail($mail_to, $thema, $html, $path)
{ if ($path) {
$fp = fopen($path,"rb");
if (!$fp)
{ print "Cannot open file";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
}
$name = "file.ext"; // в этой переменной надо сформировать имя файла (без всякого пути)
$EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
$boundary = "--".md5(uniqid(time())); // любая строка, которой не будет ниже в потоке данных.
$headers = "MIME-Version: 1.0;$EOL";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";
$headers .= "From: address@server.com";
$multipart = "--$boundary$EOL";
$multipart .= "Content-Type: text/html; charset=windows-1251$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= $EOL; // раздел между заголовками и телом html-части
$multipart .= chunk_split(base64_encode($html));
$multipart .= "$EOL--$boundary$EOL";
$multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";
$multipart .= $EOL; // раздел между заголовками и телом прикрепленного файла
$multipart .= chunk_split(base64_encode($file));
$multipart .= "$EOL--$boundary--$EOL";
if(!mail($mail_to, $thema, $multipart, $headers))
{return False; //если не письмо не отправлено
}
else { //// если письмо отправлено
return True;
}
exit;
}
|
Меня собственно интересует как взять файл из ОБЗОРА и не закачивая взять? не могли бы вы объяснить этот момент? | |
|
|
|
|
|
|
|
для: BMW
(24.07.2008 в 15:26)
| | В каком смысле - не закачивая?
И что значит - из обзора?
И зачем строки через одну пустыми прореживать?
(Я в курсе, что на сайте пример оформил дебил, но Вы-то зачем уподобляетесь?) | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2008 в 15:45)
| | >(Я в курсе, что на сайте пример оформил дебил, но Вы-то зачем уподобляетесь?)
Улыбнуло))
Но вот вернусь к конкретной проблеме:
$path = $_FILES['mail_file']['name'];
$fp = fopen($path,"rb");
$attachment = fread($fp, filesize($path));
|
В данном месте происходит ошибка, если прикрепляется не(!) рисунок!...в моем случае doc...
Пишет следующие:
Warning: fopen(1.doc) [function.fopen]: failed to open stream: No such file or directory in /home//public_html//mail.php on line 67
Warning: filesize() [function.filesize]: stat failed for 1.doc in /home//public_html//mail.php on line 68
Warning: fread(): supplied argument is not a valid stream resource in /home//public_html//mail.php on line 68
|
Подскажите пожалуйста как быть? | |
|
|
|
|
|
|
|
для: BMW
(24.07.2008 в 15:58)
| | >Но вот вернусь к конкретной проблеме:
>[code] $path = $_FILES['mail_file']['name'];
> $fp = fopen($path,"rb");
>Подскажите пожалуйста как быть?
В поле $_FILES['mail_file']['name'] не будет живого серверного имени. Там в чисто информационных целях помещается имя файла на машине клиента. Серверное имя живет в поле $_FILES['mail_file']['tmp_name']; | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2008 в 16:06)
| | Спасибо, помогло.......а вот у меня в заголовке FROM не передается((
$header="Content-type: text/plain; charset=\"windows-1251\"";
$header.="From: rty@в.com\r\n";
$header.="Subject: $head\r\n";
$header.="Content-type: text/plain; charset=\"windows-1251\"";
|
В чем тут дело? | |
|
|
|
|
|
|
|
для: BMW
(24.07.2008 в 16:59)
| | Выведите переменную $header - увидите причину. | |
|
|
|
|
|
|
|
для: BMW
(24.07.2008 в 14:46)
| | $path = 'http://sumsung.ru/map.gif';
$attachment = fread(fopen($path, "r"), filesize($path));
тут что то не так...пишет ошибку(( | |
|
|
|