Script PHP pour envoyer des mails html
J'ai écrit ce script PHP pour envoyer un e-mail HTML. Cependant, l'e-mail de sortie apparaît en tant que texte brut et ne pas être interprété comme du html.
<?php
if(isset($_POST['submit'])) {
$to = $_POST['email'];
$from = "[email protected]";
$subject = "subject";
$message = "<div style=\"background:red;height:100px; " .
"width:100px;display:block;\">dfsdf</div>";
$headers = "MIME-Version: 1.0rn";
$headers .= "Content-type: text/html; charset=iso-8859-1rn";
$headers .= "From: $from\r\n";
mail($to, $subject, $message, $headers);
echo "Message has been sent....!";
}else{
echo "Add an email address";
}
?>
<!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>Untitled Document</title>
</head>
<body>
<form action="/send" method="post">
<input name="email" type="text" />
<input name="submit" type="submit" value="Submit">
</form>
</body>
</html>
L'e-mail que je reçois est:
<div style="background:red;height:100px;width:100px;display:block;">dfsdf</div>
- Je m'attendre à recevoir une boîte rouge. Ce que je fais mal?
- La façon dont l'e-mail s'affiche est entièrement à votre lecteur e-mail. Il ne devrait rien avoir à faire avec ce code.
Vous devez vous connecter pour publier un commentaire.
Essayez de modifier les en-têtes d'e-mail:
content-type
etcharset
comme ceci:à
Vous devez utiliser
$headers .= "Content-type: text/html; charset=iso-8859-1". "\r\n";
et
$headers = "MIME-Version: 1.0\r\n";
au lieu de
$headers .= "Content-type: text/html; charset=iso-8859-1rn";
$headers = "MIME-Version: 1.0 rn";
Alors essayez cette
Voici ce qui fonctionne pour moi: