php mail met html
het werkt naar behoren met mijn outlook express
echter als het verstuurd word naar bijv. een hotmail account.
of microsoft exchange.
bij hotmail, laat hij het bericht zien een voegd het ook toe als html.
bij exchange begrijp ik dat er alleen maar een html bestand ontvangen word.
deze moet dan geopend worden voor de informatie
ik heb helaas geen benul welke code je moet plaatsen om het onderstaande moet weer geven hier, als vermoedelijk moet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// from word uit sql gehaald
$bodytext ="<html><p>";
// hier komt nog een toegevoegd bodytext onder in html
// restant code betreft het probleem
$bodytext .="</p></html>";
$headers ="Content-Type: text/html;\n";
$headers .= "From: ".$from." \r\n";
echo "<center>Email has been send, if you did not have received an answer within 24 hours, please contact me again<BR><BR>";
echo "<center>There is also send a copy of this email to ".$from;
mail( $to, $subject, $bodytext, $headers);
?>[ /code]
// from word uit sql gehaald
$bodytext ="<html><p>";
// hier komt nog een toegevoegd bodytext onder in html
// restant code betreft het probleem
$bodytext .="</p></html>";
$headers ="Content-Type: text/html;\n";
$headers .= "From: ".$from." \r\n";
echo "<center>Email has been send, if you did not have received an answer within 24 hours, please contact me again<BR><BR>";
echo "<center>There is also send a copy of this email to ".$from;
mail( $to, $subject, $bodytext, $headers);
?>[ /code]
Gewijzigd op 01/01/1970 01:00:00 door Space gremlin
Gewijzigd op 01/01/1970 01:00:00 door roy
en van die header volgorde ik had het idee dat ik het goed had.
en heb het al meerdere malen bijv. aangepast. maar misschien zie ik het gewoon niet.
ik heb nu even de code alleen gebruikt van de tutorial.
het van adres laat hij in het emailtje nog niet zien.
echter vind ik dit nu nog even geen probleem, echter kan dit wel meewerken aan het probleem misschien.
Als ik dit nu verstuur naar een hotmail account welke ik wel zelf kan testen
werkt het zo als ik wil gewoon netjes direkt je html uitkomt. echter nog niet met het goede van adres.
Echter als ik dit dan stuur naar mijn adres in outlook express krijg ik daar weer de complete html code in mijn bericht.
Moet ik mij voorstellen als ik deze code goed gebruik dat dat dan niet gebeurd. of moet ik toch meer doen toevoegen.
Code (php)
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
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
<?
$aan = "[email protected]"; # Hier dus een comma
// $aan .= "[email protected]" # Hier niet (dit is de laatste, vandaar);
# Dit zet je in de headers van de mail() functie
# De 'nieuwe' syntax wordt dus: mail( aan , onderwerp , bericht , headers );
// $headers = "Bcc: [email protected]\r\n"; # Voor Bcc
// $headers .= "Cc: [email protected]\r\n"; # voor Cc
$headers = "From <[email protected]>\r\n";
# voor HTML
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
# Voor beantwoorden :
$header .= "Return-Path: <[email protected]>\r\n";
$header .= "Reply-To: <mijn@adres>\r\n";
# En deze voor de prioriteit van de mail en de phpversie
$header .= "X-Priority: 3\r\n"; # 1 voor erg belangrijk
$header .= "X-MSMail-Priority: High\r\n";
$header .= "X-Mailer: PHP/".phpversion();
$subject = "test html verzending";
$bodytext = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
</head>
<body>
<p>test in html</p>
<p> </p>
</body>
</html>
';
mail( $aan, $subject, $bodytext, $headers);
echo "email verzonden";
?>
$aan = "[email protected]"; # Hier dus een comma
// $aan .= "[email protected]" # Hier niet (dit is de laatste, vandaar);
# Dit zet je in de headers van de mail() functie
# De 'nieuwe' syntax wordt dus: mail( aan , onderwerp , bericht , headers );
// $headers = "Bcc: [email protected]\r\n"; # Voor Bcc
// $headers .= "Cc: [email protected]\r\n"; # voor Cc
$headers = "From <[email protected]>\r\n";
# voor HTML
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
# Voor beantwoorden :
$header .= "Return-Path: <[email protected]>\r\n";
$header .= "Reply-To: <mijn@adres>\r\n";
# En deze voor de prioriteit van de mail en de phpversie
$header .= "X-Priority: 3\r\n"; # 1 voor erg belangrijk
$header .= "X-MSMail-Priority: High\r\n";
$header .= "X-Mailer: PHP/".phpversion();
$subject = "test html verzending";
$bodytext = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
</head>
<body>
<p>test in html</p>
<p> </p>
</body>
</html>
';
mail( $aan, $subject, $bodytext, $headers);
echo "email verzonden";
?>
Gewijzigd op 01/01/1970 01:00:00 door space gremlin
Code (php)
1
2
2
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
zo ie zo is er een verschil in het volgende , alleen weet ik niet of dit invloed heeft op andere email ontvangers. het is nog niet getest op exchange ontvangen
hier heb ik de \r\n vervangen door \n icm met de 2de header toegevoegd.
deze had ik eerst niet, omdat dit niet werkte op 1 of andere manier.
ik moet alleen nog even mijn from op de goede plaats zetten want die is niet zichtbaar, maar dat moet wel gaan lukken.
Misschien PHP_EOL gebruiken in plaats van "\r\n".