mailto:link中的换行符

Ste*_*aan 6 php mailto email email-client line-breaks

我想在博客文章下面创建一个"转发给朋友"链接,该帖子打开我的电子邮件客户端并准备好了消息.我可以让它用于单行消息,但我希望能够在消息体内打破行.我怎样才能做到这一点?

<?php
printf(
    '<a href="mailto:?subject=%s&body=%s">Forward this to a friend</a>',
    the_title_attribute('echo=0'),
    sprintf('The link: %s Have a great day! Stefaan', get_the_permalink())
);
?>
Run Code Online (Sandbox Code Playgroud)

如何在上面有空行的新行上开始"祝你有美好的一天!"

链接: ...

祝你有美好的一天!

斯特凡

我的博客使用带有Genesis主题的WordPress,我将我的代码放入genesis_footer_entry启用PHP 的钩子中(参见截图 - 电子邮件文本是荷兰语).

小智 4

您不能在mailto正文中使用 HTML 标签

根据RFC 2368,这是不可能的:

特殊的 hname“body”表示关联的 hvalue 是消息的正文。“body”hname 应包含消息的第一个文本/纯正文部分的内容。mailto URL 主要用于生成短文本消息,这些消息实际上是自动处理的内容(例如邮件列表的“订阅”消息),而不是一般的 MIME 正文。

所以任何依赖于 HTML 标签的解决方案都是不可能的。我建议的解决方案是将\r\n与 PHP 函数rawurlencode一起使用

所以这是代码

<?php

     printf( 
    '<a class="simple-mail-link" href="mailto:x@y.com?subject=%s&body=%s"><div class="label"><div class="dashicons dashicons-admin-plugins"></div>Forward this to a friend</div></a>', 
    'My Subject',
    rawurlencode(sprintf( "Hi there, this might be interesting for you.\r\nThis is the link: %s.\r\nHave a great day!\r\nStefaan", get_the_permalink()))
    );

?>
Run Code Online (Sandbox Code Playgroud)

注意:我尝试用带有http://example.com/test.php的变量替换get_the_permalink()的代码

参考:

带有 HTML 正文的 MailTo

PHP 中JavaScript 的encodeURIComponent 的等价物是什么?