【问题标题】:Including html tags in Email Subject [PHP]在电子邮件主题中包含 html 标签 [PHP]
【发布时间】:2016-02-03 06:04:43
【问题描述】:

使用 headers,html 标签将在 Mail Content/Body 中被解析,但是如果我们想在 Mail Subject 中有一些 html 标签怎么办。有没有办法解决这个问题

【问题讨论】:

    标签: php html sendmail phpmailer


    【解决方案1】:

    即使您在邮件主题中放置了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.
    

    【讨论】:

    • 一些电子邮件应用程序呈现 html,一些不呈现。
    • ...但没有电子邮件应用程序在主题行中呈现 HTML。
    【解决方案2】:
    <?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;
             }
    
    ?>
    

    【讨论】:

    • 不要发布无法回答问题的无法解释的随机代码,尤其是当它是一个早已过时的示例时。
    猜你喜欢
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多