【问题标题】:Why my html code also display when i send email?为什么我发送电子邮件时也会显示我的 html 代码?
【发布时间】:2012-05-10 06:51:57
【问题描述】:

嗨,亲爱的,这是我发送电子邮件的代码 我的消息代码是这样的

$to = $email;
$subject = "Activation";
$message = "Your activation key is this " .$key.'<br>'.' click here to activate your acount. <a href="activation.php?key='.$key.'">here</a>';
$from = "riaz_qadeer90@yahoo.com";
$headers = "From:" . $from;
if(mail($to,$subject,$message,$headers))
{
    echo "Check your email to activate your acount.";
}

问题是当我发送电子邮件时,我的收件箱中显示的整个消息都带有代码。为什么它不将“点击”显示为锚点.....

【问题讨论】:

    标签: email sendmail send sendmessage


    【解决方案1】:

    默认情况下,邮件不是 HTML 格式,因此它以纯文本形式发送。请参阅Example #4 on the PHP page for mail() 以发送 HTML 电子邮件。您需要指定消息头的内容类型:

    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    

    注意这里使用的.= 运算符。您会将其附加到您现有的$headers 值中。因此,您还需要确保您现有的标头正确终止:

    $headers = "From:" . $from . "\r\n";
    

    【讨论】:

    • 感谢回复我,但现在另一个问题是这封邮件已发送,但“点击此处”链接不可点击,请帮助我
    • @RiazKhan:电子邮件中呈现的 HTML 是什么?锚标记是否以某种方式损坏?
    • @RiazKhan:根据您在“答案”中发布的信息(应该是对问题的编辑),您的锚标记基本上已损坏。所有标签引用都是activation.php。但是,在电子邮件(不是网站)的上下文中,该链接没有任何意义。您需要将其设为完全限定的 URL,以便客户端(浏览器、电子邮件客户端等)知道将用户发送到哪里。
    【解决方案2】:

    因为您必须将电子邮件的标题定义为 HTML。

    http://www.w3schools.com/php/func_mail_mail.asp

    【讨论】:

    • 感谢回答我,但现在另一个问题是这封邮件已发送,但“单击此处”链接不可点击,请帮助我
    • 您能详细说明一下吗?一个指向另一个网站的链接(尤其是一个已知的坏网站,比如 w3schools)本身并不真正被认为是 Stack Overflow 上的答案。
    【解决方案3】:

    您必须检查以下事项:-

    1>正确地用逗号括起来的消息内容,'或“。
    2>检查您的标题和附加标题信息是否与(。)运算符正确连接。 大多数时候问题出现在第二种情况。

    $headers .= '收件人:abc,bcd' 。 "\r\n"; $headers .= '来自:xyz' 。 "\r\n";

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 1970-01-01
      • 2011-09-10
      • 2012-01-06
      • 2015-07-13
      • 2012-12-29
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多