| |
|
|
| | Прошу о помощи!
Помогите найти ошибку в скрипте отправки письма с вложением.
Всё присылает, но после текста письма выдаёт:
Warning: While decoding this file Opera encountered errors.
Почуму-то у Оперы возникают проблемы.
В IE, к сожалению, протестировать нет возможности.
Вот код
<?
error_reporting(E_ALL);
#######################################
$mes = "Всё отлично!";
$from = "info@pupkin.ru";
$from_n = "Василий Пупкин";
$subj="Проверка";
$to = "admin@pupkin.com";
$file_name="demo.jpg";
#######################################
$bound = "--ttptk2005--"; // разделитель
$f = fopen($file_name,"rb");
// основыне заголовки
$head = "From: $from_n <$from>\n";
$head .= "Mime-Version: 1.0\n";
$head .= "Content-Type:multipart/mixed";
$head .= "boundary=\"----------".$bound."\"\n\n";
############### ТЕКСТ ############
$body = "--$bound\n"; //разделитель
$body .= "Content-Type: text/plain; charset=windows-1251\n";
$body .= "Content-Transfer-Encoding: 8bit\n\n$mes\n\n"; // текстовое сообщение
############### ФАЙЛ #############
$letter = "--$bound\n"; //разделитель
$letter .= "Content-Type: application/octet-stream\n";
$letter .= "Content-Transfer-Encoding:base64\n";
$letter .= "Content-Disposition: attachment; filename = \"".$file_name."\"\n\n";
$letter .= base64_encode(fread($f,filesize($file_name)))."\n";
$letter .= $body."--$bound--\n";
mail($to, $subj, $letter, $head);
?>
|
| |
| |
|
|
| |
|
|
| |
для: Владимир22
(24.05.2006 в 21:47)
| | | Файл нельзя кодировать в одну длинную строку. Её надо резать на куски по 72 символа. Функцией chunk_split. | |
| |
|
|
| |
|
|
| |
для: Trianon
(24.05.2006 в 22:18)
| | | А как это здесь сделать, что и куда вставить? | |
| |
|
|
| |
|
|
| |
для: Владимир22
(24.05.2006 в 21:47)
| | |
$letter .= chunk_split(base64_encode(fread($f,filesize($file_name))))."\n";
|
| |
| |
|
|
| |
|
|
| |
для: Trianon
(24.05.2006 в 23:47)
| | | Вот сделал последнюю часть так, всё приходит как надо, но под письмом всё-равно пишет:
Warning: While decoding this file Opera encountered errors.
########################## ФАЙЛ ################################
$letter = "--$bound\n"; //разделитель
$letter .= "Content-Type: application/octet-stream\n";
$letter .= "Content-Transfer-Encoding:base64\n";
$letter .= "Content-Disposition: attachment; filename = \"".$file_name."\"\n\n";
$letter .= chunk_split(base64_encode(fread($f,filesize($file_name))))."\n";
$letter .= $body."--$bound--\n\n";
mail($to, $subj, $letter, $head);
|
Где здесь ошибка, непонятно...
И ещё вопрос
При набивании в форму вручную
после обработки текст оформляется с переводами строки,
а при копировании в форму готового текста (например из Блокнота)
всё получается одной длинной строкой. Как с этим бороться? | |
| |
|
|
| |
|
|
| |
для: Владимир22
(25.05.2006 в 00:52)
| | | Надо перед передачей в скрипт обрабатывать полученные данные. Самый простой способ str_replace(). | |
| |
|
|