使用mailto:时是否可以设置电子邮件的主题/内容?
使用mailto:时是否可以设置电子邮件的主题/内容?
Answers:
是的,请使用mailto查看所有提示和技巧:http : //www.angelfire.com/dc/html-webmaster/mailto.htm
mailto主题示例:
<a href="mailto:no-one@snai1mai1.com?subject=free chocolate">example</a>
mailto内容:
<a href="mailto:no-one@snai1mai1.com?subject=look at this website&body=Hi,I found this website and thought you might like it http://www.geocities.com/wowhtml/">tell a friend</a>
正如评论中提到的那样,两者subject
和都body
必须正确地转义。encodeURIComponent(subject)
在每种情况下使用,而不是为特定情况手工编码。
如Hoody在评论中所述,您可以通过在字符串中添加以下编码序列来添加换行符:
%0D%0A // one line break
<a href="mailto:manish@simplygraphix.com?subject=Feedback for
webdevelopersnotes.com&body=The Tips and Tricks section is great
&cc=anotheremailaddress@anotherdomain.com
&bcc=onemore@anotherdomain.com">Send me an email</a>
您可以使用此代码设置主题,正文,抄送,密件抄送
该mailto:
URL方案定义在RFC 2368。另外,在RFC 1738和RFC 3986中定义了将信息编码为URL和URI的约定。这些规定了如何将body
和subject
标头包含在URL(URI)中:
mailto:infobot@example.com?subject=current-issue&body=send%20current-issue
具体来说,您必须对电子邮件地址,主题和正文进行百分比编码,然后将其放入上述格式。百分比编码的文本在HTML中使用是合法的,但是href
根据HTML4标准,此URL必须是实体编码后才能在属性中使用:
<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>";
?>
$uri = ...
:的&
前面subject
应该是?
您可以使用以下任一种方式将添加的主题添加到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>
除了正文,用户还可以键入&cc或&bcc来填写CC和BCC字段。
<a href="mailto:test@example.com?subject=testing out mailto&body=Just testing&cc=test1@example.com&bcc=test1@example.com">Third
Example</a>
我将其分成几行以使其更具可读性。
<a href="
mailto:johndoe@gmail.com
?subject=My+great+email+to+you
&body=This+is+an+awesome+email
&cc=janedoe@gmail.com
&bcc=billybob@yahoo.com
">Click here to send email!</a>
这是诀窍 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>
请注意,根据RFC 2368,不可能在消息正文中使用HTML :
特殊的hname“ body”表示关联的hvalue是消息的主体。“正文”名称应包含消息的第一个文本/纯文本正文部分的内容。mailto URL主要用于生成短文本消息,实际上是自动处理的内容(例如邮件列表的“订阅”消息),而不是常规的MIME正文。
这是一个可运行的代码段,可帮助您生成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>
如果您想将html内容添加到电子邮件中,请对邮件正文的html代码进行url编码,然后将其包含在mailto链接代码中,但是麻烦的是,您无法通过此链接将电子邮件的类型设置为从纯文本到html,默认情况下,使用链接的客户端需要其邮件客户端发送html电子邮件。如果要测试,这里是一个简单的mailto链接的代码,链接中包裹了一个图片(添加了用于可见性的角度样式网址):
<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编码的。