Hallo zusammen,
mittels Mail_Mime möchte ich eine HTML-Mail verschicken, in der ich eingebettete Grafiken verwende. Der PHP-Code unten funktioniert für Microsoft Outlook 2007, bei anderen Clients wie Thunderbird (und diversen Webmail-Clients) hingegen wird die eingebettete Grafik als Anhang angezeigt und nicht in der HTML-Mail dargestellt.
Mit den Parametern (CRLF, Encoding usw.) habe ich bereits "herumgespielt", allerdings ohne Ergebnis.
Hat jemand Erfahrung hiermit und/oder kennt dieses Problem?
Vielen Dank vorab für Eure Unterstützung!
Beste Grüße,
Sascha
--
Der folgende PHP-Code basiert auf dem Beispiel unter http://pear.php.net/ ... example.php
include('Mail.php');
include('Mail/mime.php');
$mime = new Mail_mime("\r\n");
$headers = array(
'From' => 'Firstname Lastname <example@example.com>',
'Subject' => $subject
);
$image = $_SERVER['DOCUMENT_ROOT'] . '/images/test.jpg';
$html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">";
$html .= "<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"de-DE\">";
$html .= "<head>";
$html .= "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />";
$html .= "<meta http-equiv=\"content-style-type\" content=\"text/css\" />";
$html .= "<meta http-equiv=\"content-script-type\" content=\"text/javascript\" />";
$html .= "</head>";
$html .= "<body>";
$html .= "<p>Message</p>";
$html .= "<img src=\"cid:" . basename($image) . "\" style=\"width: 320px; height: 320px; border: none;\" width=\"320\" height=\"240\" border=\"0\" alt=\"\" />";
$html .= "</body>";
$html .= "</html>";
$plain = "Message ...\n";
$plain .= "Message ...\n";
$mime->setTXTBody($plain);
$mime->setHTMLBody($html);
$mime->addHTMLImage(file_get_contents($image), 'image/jpeg', basename($image), false);
$body = $mime->get(array('text_encoding' => '8bit', 'head_charset' => 'UTF-8', 'text_charset' => 'UTF-8', 'html_charset' => 'UTF-8'));
$headers = $mime->headers($headers);
$mail =& Mail::factory('mail');
$mail->send("Firstname Lastname <example@example.comexample@example.com>", $headers, $body);
--
Dies ist der Body, den der durch Mime_Mail erzeigt wird (Grafik und HTML gekürzt):
--=_76676333af51f969e6af1ea30f9dada9
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=UTF-8
--=_76676333af51f969e6af1ea30f9dada9
Content-Type: multipart/related;
boundary="=_207b44ab093f8cccbb0845e755a202c7"
--=_207b44ab093f8cccbb0845e755a202c7
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8
%HTML_MAIL%
--=_207b44ab093f8cccbb0845e755a202c7
Content-Transfer-Encoding: base64
Content-ID: <7ce201431aac45ffc0211fa3454685e1>
Content-Type: image/jpeg;
name=mail-1.jpg
Content-Disposition: inline;
filename=test.jpg
%BASE64_ENCODED_IMAGE%
--=_207b44ab093f8cccbb0845e755a202c7--
--=_76676333af51f969e6af1ea30f9dada9--