Forum Webscript.Ru
Программирование => PHP => Тема начата: golden-den от 06 Января 2006, 21:35:03
-
есть функция (скачал с php.net вроде )
function XMail( $from, $to, $subj, $text, $filename) {
$f = fopen($filename,"rb");
$un = strtoupper(uniqid(time()));
$head = "From: $from\\n";
$head .= "To: $to\\n";
$head .= "Subject: $subj\\n";
$head .= "X-Mailer: PHPMail Tool\\n";
$head .= "Reply-To: $from\\n";
$head .= "Mime-Version: 1.0\\n";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary=\\"----------".$un."\\"\\n\\n";
$zag = "------------".$un."\\nContent-Type:text/html;\\n";
$zag .= "Content-Transfer-Encoding: 8bit\\n\\n$text\\n\\n";
$zag .= "------------".$un."\\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\\"".basename($filename)."\\"\\n";
$zag .= "Content-Transfer-Encoding:base64\\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\\"".basename($filename)."\\"\\n\\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($filename))))."\\n";
if (mail($to, $subj, $zag, $head)) {return true;}
else {return false;};
};
Она присоединяет файл к письму, как вложение.
Только письмо приходит с вложением, не отображающемся в тексте письма
письмо например такое
----------------------
Представляем вам нновый образец станка...
-----------------------
при этом в письме отображается текст, а вместо картинки - рамка.
Картинка же есть в самом письме, но как вложение. ее можно посмотреть, кликнув на вложение
Как сделать, чтобы картинка отображалась непосредственно в html коде письма?
В почте смотрел как спам устроем - там пишут
Что за cid?
PS сам спамом не занимаюсь ;-)
-
C cid разобрался, только теперь приходит письмо, картинку можно посмотреть, кликнув на нее,а в самом письме
она не показывается, хотя при выделении всего текста письма видно, что под картинку отведен большой белый квадрат (совпадает с размерами картинки).
Т.е. Bat вроде пытается ее отобразить, выделят место под нее, только не получается
Content-Type: multipart/mixed; заменял на Content-Type: related; и
на Content-Type: alternative;
function XMail( $from, $to, $subj, $text, $filename) {
$f = fopen($filename,"rb");
$un = strtoupper(uniqid(time()));
$head = "From: $from\\n";
$head .= "Subject: $subj\\n";
$head .= "Reply-To: $from\\n";
$head .= "MIME-Version: 1.0\\n";
$head .= "Content-Type: multipart/mixed;";
$head .= "boundary=\\"next-part--".$un."\\"\\n\\n";
$zag = "--next-part--".$un."\\n";
$zag .= "Content-Type: text/html;\\n";
$zag .= "Content-Transfer-Encoding: 7bit\\n\\n";
$zag .= "$text\\n\\n";
$zag .= "--next-part--".$un."\\n";
$zag .= "Content-Type: image/gif; \\n";
$zag .= "Content-Transfer-Encoding: base64\\n";
$zag .= "Content-ID: image_0\\n";
$zag .= "Content-Disposition: inline;";
$zag .= "filename=\\"".basename($filename)."\\"\\n\\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($filename))))."\\n";
$zag .= "--next-part--".$un."--\\n\\n";
if (mail($to, $subj, $zag, $head)) {return true;}
else {return false;};
};
-
Вроде делал по стандарту, пробовал разные комбинации,
затем все надоело и решил попробовать PHPMailer http://phpmailer.sourceforge.net/tutorial.html (http://phpmailer.sourceforge.net/tutorial.html)
Там же все работает ....
Проблема осталась: Вложения приходят, только BAT не хочет отображать картинку, а место под нее оставляет .
При этом в спаме картинки как-то отображаются
Кто-нибудь пробовал PHPMailer ?
А может в бате дело или в моих руках все-таки?
Вот код с использованием класса PHPMailer
$mailer = new FreakMailer();
$mailer->Subject = \'Это тест\';
$htmlBody = \'
Untitled
Тут должна быть картинка
\';
$mailer->Body = $htmlBody;
$mailer->isHTML(true);
$mailer->AddAttachment($_SERVER[\'DOCUMENT_ROOT\'].\'/images/image_blank.gif\', \'image_blank.gif\');
$mailer->AddAttachment($_SERVER[\'DOCUMENT_ROOT\'].\'/images/img_link_blank.gif\', \'image_link_blank.gif\');
$mailer->AddEmbeddedImage($_SERVER[\'DOCUMENT_ROOT\'].\'/images/image_blank.gif\', \'image_lnk_blank\', \'image_blank.gif\', \'base64\',\'image/gif\');
$mailer->AddAddress(\'ddd@ddd.ru\', \'vvvvv\');
if(!$mailer->Send()) { echo \'Не могу отослать письмо!\';}
else{ echo \'Письмо отослано!\';}
$mailer->ClearAddresses();
$mailer->ClearAttachments();
И еще странно то, что на @mail.ru просто не приходят письма - нет их, а на другой сервер приходят, правда там стоит антиспамовая система, которая добавляет заголовки к письму "Типа это спам"
-
настроил себе MS Outlook, который в XP.
В нем все работает - приходят и отображаются вложения...
В чем же дело?
Как подстроить под все почтовые прграммы?
Может все-таки кто-нибудь подскажет?
Что-то тишина на мой вопрос
-
http://phpclub.ru/detail/article/mail
-
Slastik
читал и не раз - эта статья у меня сохранена на диске.
Дело в том, что я уже скачал готовый класс, который проверен давно.
Всё равно при просмотре присем в Bat не показывается картинка.
(см. пред мое сообщение)