【发布时间】:2016-02-03 06:04:43
【问题描述】:
使用 headers,html 标签将在 Mail Content/Body 中被解析,但是如果我们想在 Mail Subject 中有一些 html 标签怎么办。有没有办法解决这个问题
【问题讨论】:
标签: php html sendmail phpmailer
使用 headers,html 标签将在 Mail Content/Body 中被解析,但是如果我们想在 Mail Subject 中有一些 html 标签怎么办。有没有办法解决这个问题
【问题讨论】:
标签: php html sendmail phpmailer
即使您在邮件主题中放置了html标签,邮件客户端也不会将其呈现为html
根据电子邮件 RFC,电子邮件主题不能有内容类型
来自 rfc http://www.w3.org/Protocols/rfc822/
3.1.2. STRUCTURE OF HEADER FIELDS
Once a field has been unfolded, it may be viewed as being composed of a field-name followed by a colon (":"), followed by a field-body, and terminated by a carriage-return/line-feed. The field-name must be composed of printable ASCII characters (i.e., characters that have values between 33. and 126., decimal, except colon). The field-body may be composed of any ASCII characters, except CR or LF. (While CR and/or LF may be present in the actual text, they are removed by the action of unfolding the field.)
Certain field-bodies of headers may be interpreted according to an internal syntax that some systems may wish to parse. These fields are called "structured fields". Examples include fields containing dates and addresses. Other fields, such as "Subject" and "Comments", are regarded simply as strings of text.
Note:
Any field which has a field-body that is defined as other than simply <text> is to be treated as a structured field.
Field-names, unstructured field bodies and structured field bodies each are scanned by their own, independent "lexical" analyzers.
3.1.3. UNSTRUCTURED FIELD BODIES
For some fields, such as "Subject" and "Comments", no structuring is assumed, and they are treated simply as <text>s, as in the message body. Rules of folding apply to these fields, so that such field bodies which occupy several lines must therefore have the second and successive lines indented by at least one LWSP-char.
【讨论】:
<?php
require_once('phpmailer/class.phpmailer.php');
$ = $_POST[];
$ = $_POST[];
$ = $_POST[];
$ = $_POST[];
$mail = new PHPMailer();
$mail->CharSet = "utf-8";
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Username = "example@example.com";
$mail->Password = "";
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = "465";
$mail->setFrom('emailaddress','name');
$mail->AddAddress('email address', 'name');
$mail->Subject = 'Example';
$mail->IsHTML(true);
ob_start();
?>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
<?php
$mail->Body = ob_get_clean();
if($mail->Send())
{
header('');
}
else
{
echo "Mail Error - >".$mail->ErrorInfo;
}
?>
【讨论】: