PHP使用HTML准备MAILTO

时间:2014-11-17 17:30:10

标签: php html email mailto

我正在寻找一个解决方案,准备一个完整的电子邮件,以便通过邮件客户端打开

PHP用于生成链接。

这是我的代码的有用部分。

$body = str_repalace('&amp','%26',$body);

$mailtarget = "mailto:".$adress."?cc=".$ccs."&Subject=".rawurlencode($subject)."&Body=".$body.
header("Location = $mailtarget");

此解决方案正常,除非我在邮件中使用html,这是必要的(<br><hr><table>

如果使用HTML,有时没有任何东西进入Body,有时只是文本的一部分。

当我使用sendmail.exe邮寄HTML时,它完美无缺。但这不是一个选项,因为它需要手动向邮件添加附件。

有没有办法让这个正常工作?

3 个答案:

答案 0 :(得分:1)

无法在正文邮件中包含HTML。

您可以尝试对您的HTML进行url_encode并将其设置为您的mailto链接中的正文,但它存在许多无法在许多电子邮件客户端中工作的风险。

From this answer,它甚至在RFC 2368

中定义
  

特殊的hname&#34; body&#34;表示关联的左值是   信息的主体。 &#34;身体&#34; hname应包含的内容   消息的第一个text / plain正文部分。 mailto URL是   主要用于生成短文本消息   实际上是自动处理的内容(例如&#34;订阅&#34;   邮件列表的消息),而不是一般的MIME主体。

答案 1 :(得分:0)

尝试:&Body=".urlencode($body);

答案 2 :(得分:0)

使用rawurlencode函数插入回车符:

<?php
    $body = '
    First line
    Second line';
    header("location: mailto:emailadresse@domain.com?subject=Hello&body=".rawurlencode($body));
?>