我正在寻找一个解决方案,准备一个完整的电子邮件,以便通过邮件客户端打开
PHP用于生成链接。
这是我的代码的有用部分。
$body = str_repalace('&','%26',$body);
$mailtarget = "mailto:".$adress."?cc=".$ccs."&Subject=".rawurlencode($subject)."&Body=".$body.
header("Location = $mailtarget");
此解决方案正常,除非我在邮件中使用html,这是必要的(<br>
,<hr>
,<table>
。
如果使用HTML,有时没有任何东西进入Body,有时只是文本的一部分。
当我使用sendmail.exe邮寄HTML时,它完美无缺。但这不是一个选项,因为它需要手动向邮件添加附件。
有没有办法让这个正常工作?
答案 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));
?>