Op een website heb ik een formulier dat door een PHP script als HTML-mail verzonden zou moeten worden. De mail wordt echter als plain text verzonden. In Outlook Express 6 krijg ik dan de HTML-code te zien, bijvoorbeeld: <html><body><b>blabla</b>.............
Ik vermoed dat de fout in het onderstaande stukje code zit:
Deze code is onderdeel van het mailscript van Hark's Mailer (gratis).
Wat heb ik zelf geprobeerd?
- Content-Transfer-Encoding wijzigen in base64, 8bit of quoted-printable
- Content-Type wijzigen in text/html
- script op andere server getest
- andere mailaccounts bij verschillende mailproviders getest
- meerdere mailclients getest (ook webmail)
- mail op meerdere PC's binnengehaald
- tientallen instellingen in OE6 gewijzigd
Het vreemde is dat PocoMail 4 de mails wel als HTML herkent, en ook zo weergeeft. In de headers laat PocoMail het volgende zien:
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Deze headers zijn in OE6 en Thunderbird afwezig.
Wie kan mij op weg helpen? Als er meer gegevens nodig zijn, laat het me weten.
Ik vermoed dat de fout in het onderstaande stukje code zit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| // mail the content function mail_it($content, $Onderwerp, $Email, $recipient) { global $attachuser, $attachtemp, $attachsize, $attachtype; $headpart = ""; $msgpart = ""; // build message headers $headpart = "From: $Email\n"; $headpart .= "Reply-To: $Email\n"; if ($attachuser) { // create a MIME boundary string $boundary = md5(uniqid(time())); // add MIME data to the message headers $headpart = "MIME-Version:1.0\n"; $headpart .= "From: $Email\n"; $headpart .= "Reply-To: $Email\n"; $headpart .= "Content-Type: text/html;\n\tboundary=\"$boundary\"\n"; $msgpart = "This is a multi-part message in MIME format.\n"; $msgpart .= "\n--$boundary\n"; $msgpart .= "Content-Type: text/html\n"; $msgpart .= "Content-Transfer-Encoding: 8bit\n\n"; $msgpart .= "$content\n"; for($i = 0; $i < count($attachuser); $i++) { $msgpart .= "\n--$boundary\n"; $fname = basename($attachuser[$i]); $msgpart .= "Content-Type: $attachtype[$i]; \n\tname=\"$fname\"\n"; $msgpart .= "Content-Transfer-Encoding: base64\n"; $msgpart .= "Content-Disposition: attachment; filename=\"$fname\"\n\n"; $fcontent = fread(fopen($attachtemp[$i], "r"), filesize($attachtemp[$i])); $fcontent = chunk_split(base64_encode($fcontent)); $msgpart .= "$fcontent\n"; } $msgpart .= "\n--$boundary--\n"; } else { $msgpart .= "$content\n"; } if(!mail($recipient, $Onderwerp, $msgpart, $headpart)) { delete_temp_files(); issue_errors("Onbekende fout tijdens verzenden bericht."); } delete_temp_files(); } |
Deze code is onderdeel van het mailscript van Hark's Mailer (gratis).
Wat heb ik zelf geprobeerd?
- Content-Transfer-Encoding wijzigen in base64, 8bit of quoted-printable
- Content-Type wijzigen in text/html
- script op andere server getest
- andere mailaccounts bij verschillende mailproviders getest
- meerdere mailclients getest (ook webmail)
- mail op meerdere PC's binnengehaald
- tientallen instellingen in OE6 gewijzigd
Het vreemde is dat PocoMail 4 de mails wel als HTML herkent, en ook zo weergeeft. In de headers laat PocoMail het volgende zien:
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Deze headers zijn in OE6 en Thunderbird afwezig.
Wie kan mij op weg helpen? Als er meer gegevens nodig zijn, laat het me weten.