在电子邮件主题中包含html标签[PHP]

时间:2015-11-03 06:59:55

标签: php html sendmail phpmailer

使用标题,html标签将在Mail Content / Body中解析,但是如果我们想在Mail Subject中有一些html标签会怎样。有什么出路吗

2 个答案:

答案 0 :(得分:5)

即使您将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.

答案 1 :(得分:-1)

<?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;
         }

?>