|
|
|
| Добрый день. Воспользовавшись примером отправки сообщения с вложением с этого сайта пытаюсь написать отдельный небольшой скрипт для отправки сообщения с заранее заданным текстом и конкретным файлом на сервере. Но вот проблема, куда именно вставить для нормального отображения текст самого письма? Толи я не замечаю чего, толи армия последние мозги выбила(
<?php
$mail_to = 'asd@asd.ru';
$thema = 'Theme';
$msg = 'Message...';
$path = 'kran.pdf';
$name = 'kran.pdf';
$address = 'company@mail.com';
//
if (send_mail($mail_to, $thema, $msg, $path, $name, $address)) echo 'TRUE!'; else echo 'FALSE';
//
function send_mail($mail_to, $thema, $msg, $path, $name, $address)
{ if ($path) {
$fp = fopen($path,"rb");
if (!$fp)
{ print "Cannot open file";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
}
$EOL = "\r\n";
$boundary = "--$msg".md5(uniqid(time()));
$headers = "MIME-Version: 1.0;$EOL";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";
$headers .= "From: $address";
$multipart = "--$boundary$EOL";
$multipart .= "Content-Type: text/html; charset=windows-1251$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= $EOL;
$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;
}
?>
|
| |
|
|
|
|
|
|
|
для: ALEXIT
(29.02.2012 в 12:58)
| | $msg = 'Message...';
в место Message и пихайте свой текст :)
соответсвенно $thema = 'Theme'; - этот переменная содержащая название темы | |
|
|
|
|
|
|
|
для: Valick
(29.02.2012 в 13:18)
| | Не не, не все так просто :) Эти переменные я сам и написал для примера... Суть в том, что в функцию эта $msg только передана, но там не задействуется, не знаю формата полного этой функции...
Нашел косяк у себя в коде, в строке
$boundary = "--$msg".md5(uniqid(time()));
| переменной $msg не должно быть... | |
|
|
|
|
|
|
|
для: ALEXIT
(29.02.2012 в 13:21)
| | $multipart .= chunk_split(base64_encode($html));
$html - это и есть письмо
пр пробуйте заменить на
$multipart .= chunk_split(base64_encode($msg)); | |
|
|
|
|
|
|
|
для: Valick
(29.02.2012 в 13:26)
| | Спасибо, заработало!)
Точно не заметил( Да еще и чуть забыл методы передачи данных в функции...
А в исходном скрипте отсюда http://softtime.ru/scripts/mailattach.php путаницу сделали с переменными для неопытных. Передаются в функцию одни переменные, а запускается она с другими, но данные одни...
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)
|
| |
|
|
|