Forum Webscript.Ru
Программирование => PHP => Тема начата: a@mail.dux.ru от 06 Февраля 2003, 02:01:29
-
Помогите, пожалуйста.
Навоял скрипт. корявый, не буду спорить, но все рабоатет.
Кроме одного: $htmlbody - это приложенный файл в виде html -
в нем на экране не выводятся приаттаченную каринку
Может я в html неправильно прописываю картинку? ПОдскажите
Проблема в том, что хочу что бы он отражался в письме как обычный html
$htmlbody="
xxxx
DDDDDDDDD Ya TUUT!
123
";
//$htmlbody - текст в html виде
//$body - текст (тело письма)
//$attachmentfileNAME - имя файла (картинка);
//$attachmentPATH - имя файла и полный путь к нему;
$attachment1=$attachmentPATH ;
If ($attachmentPATH<>""){
//photo
$fp = fopen($attachment1, "r");
$read = fread($fp, filesize($attachment1));
$read = base64_encode($read);
$read = chunk_split($read);
fclose($fp);
}
//$headers = "Content-Transfer-Encoding: 8bit\\r\\n";
$headers .= "Content-Type: multipart/mixed; boundary=\\"XX-1234DED00099A\\"\\r\\n";
$headers .= "MIME-Version: 1.0\\r\\n";
$headers .= "From: <$emailto>\\r\\n";
///// HTML //////
$headers .= "\\r\\n";
$headers .= "--XX-1234DED00099A\\r\\n";
//$headers .= "Content-Disposition: inline; filename=\\"mail.txt\\"\\r\\n";
//$headers .= "Content-Transfer-Encoding: 8bit\\r\\n";
$headers .= "Content-type: text/html;\\r\\n";
$headers .= "\\r\\n".$htmlbody."\\r\\n";
////// HTML /////
$headers .= "\\r\\n";
$headers .= "--XX-1234DED00099A\\r\\n";
//$headers .= "Content-Disposition: inline; filename=\\"mail.txt\\"\\r\\n";
$headers .= "Content-Transfer-Encoding: 8bit\\r\\n";
$headers .= "Content-type: text/plain; charset=koi8-r\\r\\n";
$headers .= "\\r\\n".$body."\\r\\n";
If ($attachmentPATH<>""){
$headers .= "--XX-1234DED00099A\\r\\n";
$headers .= "Content-type: application/octet-stream; name=\\"$attachmentfileNAME\\"\\r\\n";
//можно и так $headers .= "Content-type: application/octet-stream; \\r\\n";
$headers .= "Content-Disposition: attachment; filename=\\"$attachmentfileNAME\\"\\r\\n";
$headers .= "Content-Transfer-Encoding: base64\\r\\n";
$headers .= "\\r\\n".$read."\\r\\n";
$headers .= "--XX-1234DED00099A--\\r\\n";
}
?>
if ( mail($emailto,$subject,$body, $headers)) {
echo " Has been sent to: $emailto";
} else {
echo "Увы, ошибка :о(";
}
?>
-
a@mail.dux.ru
не знаю, найдется ли желающий изучать килобайты твоего кода, поэтому предложу свой вариант с использованием pear-классов pear :: mail и pear :: mail :: mime
include("Mail.php");
include("Mail/mime.php");
$params = array("text_charset" => "koi8-r", "text_encoding" => "8bit");
$heads = array("From"=>"max@webscript.ru","Reply-To"=>"max@webscript.ru");
$to = "president@whitehouse.gov";
$mail = new Mail_mime();
$mail->setHTMLBody(\'aaaa\');
$mail->addHTMLImage("photo.jpg", \'image/jpeg\');
$body = $mail->get($params);
$hdrs = $mail->headers($heads);
$ml =& Mail::factory(\'mail\');
$ml->send($to, $hdrs, $body);
?>Ok
Правда я его еще не на всех почтовых клиентах проверил, но там где проверял - работало
-
во-первых, что у тебя тут
>
за локалхост?
во-вторых, cid - это не просто волшебное слово, а работает в паре с другим, волшебным.
-
RomikChef
Возможно и так, я это взял из письма присланного мне. Как правильно написать? может подскажешь, что это за волшебное слово?
-
Re: Макс
спасибо за код. буду разбираться. С классами я не дружу. Так как не могу понять что это и зачем. Вникнуть сначала надо. а русское описание пока не нашел. Но все-равно спасибо. Буду пробовать ваш код.
-
Re: Макс
Так а в твоем коде нехватает
include("Mail.php");
include("Mail/mime.php");
без них то код теряет смысл. может пришлешь? спасибо.
-
если будеш пробовать, не забудь настроить include_path на папку с pear (если таковая у тебя есть)
А русскую доку по pear точно где-то я видел (только не помню где, я ею не пользовался)
-
вот она дока, но там я тоже не нашел
include("Mail.php");
include("Mail/mime.php");
http://dmitry.ints.net/library/prog/link/PHP/PEAR/index.html
Так где их брать? А! тепрь дошло, а как я узнае есть у моего Х-провайдера такая папка или нет?
Да и вообще ошибка только в том, как я описываю фотографию, а как правильно, я не знаю
-
http://phpclub.net/talk/search.php?query=content-id&exactname=yes&forumchoice=-1&searchdate=-1&beforeafter=after&sortby=lastpost&sortorder=descending&action=simplesearch&Submit=
-
Так где их брать? А! тепрь дошло, а как я узнае есть у моего Х-провайдера такая папка или нет?
вообще от провайдера зависит, некоторые устанавливают, некоторые - нет. Посмотри phpinfo() на тему include_path
Я pear всегда сам устанавливаю так как у прова могут быть старые версии классов
Да и вообще ошибка только в том, как я описываю фотографию, а как правильно, я не знаю
вот можеш посмотреть как этот класс тело письма оформляет
http://php-master.net/mail/index.php
-
Re: RomikChef
спасибо помогло.
Надо было вставить в скрипт Content-ID:
а в html -
для тех кто так же как я мучался -та часть которая у меня была неправильно теперь выглядит так
If ($attachmentPATH<>""){
$headers .= "--XX-1234DED00099A\\r\\n";
$headers .= "Content-type: application/octet-stream; name=\\"$attachmentfileNAME\\"\\r\\n";
$headers .= "Content-Transfer-Encoding: base64\\r\\n";
$headers .= "Content-ID:<$attachmentfileNAME>\\r\\n"; ///New dobavka
$headers .= "Content-Disposition: attachment; filename=\\"$attachmentfileNAME\\"\\r\\n";
$headers .= "\\r\\n".$read."\\r\\n";
$headers .= "--XX-1234DED00099A--\\r\\n";
}