我编写了这个PHP脚本来发送HTML电子邮件。但是,电子邮件输出显示为原始文本,而不是解释为html。
<?php
if(isset($_POST['submit'])) {
$to = $_POST['email'];
$from = "info@test.com";
$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>
我收到的电子邮件是:
<div style="background:red;height:100px;width:100px;display:block;">dfsdf</div>
我希望得到一个红色的盒子。我做错了什么?
答案 0 :(得分:2)
尝试更改电子邮件标题:content-type
和charset
,如下所示:
$headers = "MIME-Version: 1.0rn";
$headers .= "Content-type: text/html; charset=iso-8859-1rn";
到
$headers = "MIME-Version: 1.0 \r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
答案 1 :(得分:1)
$mail_to=$tomail;
$mail_from=$frommail;
$mail_sub="Subject";
$mail_mesg="Body of your Message";
$headers = "MIME-Version: 1.0 \r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
$headers .= "From: $frommail\r\n";
if(mail($mail_to,$mail_sub,$mail_mesg,$headers))
$result = "send successfully";
else
$result = "failed to send mail";
答案 2 :(得分:1)
你必须使用$headers .= "Content-type: text/html; charset=iso-8859-1". "\r\n";
和$headers = "MIME-Version: 1.0\r\n";
而不是
$ headers。=“Content-type:text / html; charset = iso-8859-1rn”; $ headers =“MIME-Version:1.0rn”;
所以试试这个
<?php
if(isset($_POST['submit'])) {
$to = $_POST['email'];
$from = "info@test.com";
$subject = "subject";
$message = "<div style=\"background:red;height:100px;width:100px;display:block;\">dfsdf</div>";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1". "\r\n";
$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>
答案 3 :(得分:0)
这对我有用:
$mailheaders = "From: $email\n";
$mailheaders .= "Reply-to: $email\n";
$mailheaders .= "Content-Type: text/html; charset=iso-8859-1\n";
mail('my@email.com', 'Test', 'Foo bar', $mailheaders);