当我使用mailto:时,是否可以设置电子邮件的主题/内容?
当前回答
诀窍在这里 http://neworganizing.com/content/blog/tip-prepopulate-mailto-links-with-subject-body-text
<a href="mailto:tips@neworganizing.com?subject=Your+tip+on+mailto+links&body=Thanks+for+this+tip">tell a friend</a>
其他回答
如果你想添加html内容到你的电子邮件,url编码你的html代码的消息体,并包括在你的mailto链接代码,但问题是你不能设置电子邮件的类型从明文到html,客户端使用链接需要他们的邮件客户端默认发送html电子邮件。如果你想测试的话,这里有一个简单的mailto链接的代码,链接中包含一个图像(添加angular风格的url是为了可见性):
<a href="mailto:?body=%3Ca%20href%3D%22{{ scope.url }}%22%3E%3Cimg%20src%3D%22{{ scope.url }}%22%20width%3D%22300%22%20%2F%3E%3C%2Fa%3E">
html标记是url编码的。
下面是一个可运行的代码片段,可以帮助您生成带有可选主题和正文的mailto:链接。
function generate() { var email = $('#email').val(); var subject = $('#subject').val(); var body = $('#body').val(); var mailto = 'mailto:' + email; var params = {}; if (subject) { params.subject = subject; } if (body) { params.body = body; } if (params) { mailto += '?' + $.param(params); } var $output = $('#output'); $output.val(mailto); $output.focus(); $output.select(); document.execCommand('copy'); } $(document).ready(function() { $('#generate').on('click', generate); }); <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="email" placeholder="email address" /><br/> <input type="text" id="subject" placeholder="Subject" /><br/> <textarea id="body" placeholder="Body"></textarea><br/> <button type="button" id="generate">Generate & copy to clipboard</button><br/> <textarea id="output">Output</textarea>
mailto: URL方案在RFC 2368中定义。此外,在RFC 1738和RFC 3986中定义了将信息编码为url和uri的约定。它们规定了如何将正文和主题标题包含到URL (URI)中:
mailto:infobot@example.com?subject=current-issue&body=send%20current-issue
具体来说,您必须对电子邮件地址、主题和正文进行百分比编码,并将它们放入上述格式。百分比编码的文本在HTML中使用是合法的,但是根据HTML4标准,这个URL必须是在href属性中使用的实体编码:
<a href="mailto:infobot@example.com?subject=current-issue&body=send%20current-issue">Send email</a>
最常见的是,下面是一个简单的PHP脚本,它对上述内容进行编码。
<?php
$encodedTo = rawurlencode($message->to);
$encodedSubject = rawurlencode($message->subject);
$encodedBody = rawurlencode($message->body);
$uri = "mailto:$encodedTo?subject=$encodedSubject&body=$encodedBody";
$encodedUri = htmlspecialchars($uri);
echo "<a href=\"$encodedUri\">Send email</a>";
?>
mailto:joe@company.com?subject=Your+subject
您可以使用以下任何一种方式向mailto命令添加已添加的主题。 将?subject outmailto添加到mailto标签。
<a href="mailto:test@example.com?subject=testing out mailto">First Example</a>
我们还可以将文本添加到消息体中,方法是在标记的末尾添加&body,如下面的示例所示。
<a href="mailto:test@example.com?subject=testing out mailto&body=Just testing">Second Example</a>
除正文外,用户还可以输入&抄送或&密件抄送来填写抄送和密件抄送字段。
<a href="mailto:test@example.com?subject=testing out mailto&body=Just testing&cc=test1@example.com&bcc=test1@example.com">Third
Example</a>
如何添加主题到邮件标签