Probleme mit senden multipart/alternative E-Mail mit PHP
Hier ist das Skript, dass die builds/sendet die E-Mail:
$boundary = md5(date('U'));
$to = $email;
$subject = "My Subject";
$headers = "From: [email protected]" . "\r\n".
"X-Mailer: PHP/".phpversion() ."\r\n".
"MIME-Version: 1.0" . "\r\n".
"Content-Type: multipart/alternative; boundary=--$boundary". "\r\n".
"Content-Transfer-Encoding: 7bit". "\r\n";
$text = "You really ought remember the birthdays";
$html = '<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';
$message = "Multipart Message coming up" . "\r\n\r\n".
"--".$boundary.
"Content-Type: text/plain; charset=\"iso-8859-1\"" .
"Content-Transfer-Encoding: 7bit".
$text.
"--".$boundary.
"Content-Type: text/html; charset=\"iso-8859-1\"".
"Content-Transfer-Encoding: 7bit".
$html.
"--".$boundary."--";
mail("[email protected]", $subject, $message, $headers);
Sendet er die Nachricht einfach in Ordnung, und der Empfänger erhält es, aber Sie bekommen die ganze Sache in "text/plain" statt in "multipart/alternative". Anzeige der Quelle der empfangenen Nachricht gibt diese (viele Reste entfernt):
Delivered-To: myrecipient@example.com
Received: by 10.90.100.4 with SMTP id x4cs111413agb;
Wed, 25 Mar 2009 16:39:32 -0700 (PDT)
Received: by 10.100.153.6 with SMTP id a6mr85081ane.123.1238024372342;
Wed, 25 Mar 2009 16:39:32 -0700 (PDT)
Return-Path: <xxx@xxxx.com>
--- snip ---
Date: Wed, 25 Mar 2009 17:37:36 -0600 (MDT)
Message-Id: <200903252337.n2PNbaw2019541@www.xxxxxxx.com>
To: trevor@saturdayplace.com
Subject: My Subject
From: me@mydomain.com
X-Mailer: PHP/4.3.9
MIME-Version: 1.0
Content-Type: text/plain;
boundary="--66131caf569f63b24f43d529d8973560"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 25 Mar 2009 23:38:30.0531 (UTC) FILETIME=[CDC4E530:01C9ADA2]
X-TM-AS-Product-Ver: SMEX-8.0.0.1181-5.600.1016-16540.005
X-TM-AS-Result: No--4.921300-8.000000-31
X-TM-AS-User-Approved-Sender: No
X-TM-AS-User-Blocked-Sender: No
Multipart Message coming up
--66131caf569f63b24f43d529d8973560
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
You really ought remember the birthdays
--66131caf569f63b24f43d529d8973560
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
--66131caf569f63b24f43d529d8973560--
Sieht es aus wie der content-type-header wird immer geändert auf dem Weg von multipart/alternative text/plain. Ich bin kein sysadmin ist, so ist dies ein sendmail Problem ich bin in der Weise über meinen Kopf. Irgendwelche Vorschläge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Linie
sollte
Sie nicht die Bindestriche in der überschrift.
Bekommen das richtig funktioniert für mich, ich musste auch hinzufügen, ein "\r\n" am Ende jeder Kopfzeile, zwei von Ihnen ("\r\n\r\n") am Ende der Zeilen vor dem text-und der html-Körper, und eine am Ende eines jeden Körpers. Dies ergibt etwas wie dies:
verwenden Sie "\n" statt "\r\n" wie es aussieht, qmail hat Probleme mit "\r"
Nur ein Gedanke, aber es könnte sein, viel einfacher, einfach lohnt, mit so etwas wie phpmailer oder Zend_Mail.