自动打开默认电子邮件客户端并预填充内容
Posted
技术标签:
【中文标题】自动打开默认电子邮件客户端并预填充内容【英文标题】:Automatically open default email client and pre-populate content 【发布时间】:2012-10-25 05:32:25 【问题描述】:当用户在页面上保存某些内容时,我需要自动打开用户的默认电子邮件客户端。我需要填写电子邮件主题、地址并将一些内容放入电子邮件正文中。
实现这一目标的最佳选择是什么?
我知道mailto:
属性,但用户必须点击它,我不确定它是否允许您指定主题和内容?
【问题讨论】:
您可以在以 mailto 为前缀的 href 中设置电子邮件的每一部分。这是我为使它变得非常简单而构建的一个工具:mailto.now.sh 【参考方案1】:如RFC 6068 所述,mailto 允许您指定 subject 和 body 以及 cc 字段。例如:
mailto:username@example.com?subject=Subject&body=message%20goes%20here
force it to be opened with javascript用户无需点击链接
window.location.href = "mailto:user@example.com?subject=Subject&body=message%20goes%20here";
请注意,浏览器/电子邮件客户端处理 mailto 链接没有单一的标准方式(例如,主题和正文字段可能会在没有警告的情况下被丢弃)。此外,弹出窗口和广告拦截器、防病毒软件等可能会默默阻止强制打开 mailto 链接。
【讨论】:
有没有办法用jQuery将图片(不是url,而是实际图片)加载到消息中? 如果邮件超过字符限制怎么办?这是一个很好的解决方法,但它似乎不是一个优雅的解决方案。 如果我需要添加一些其他内容作为示例图像、css 或 html 怎么办 是否可以发送带有上述详细信息的附件?【参考方案2】:jQuery:
$(function ()
$('.SendEmail').click(function (event)
var email = 'sample@gmail.com';
var subject = 'Test';
var emailBody = 'Hi Sample,';
var attach = 'path';
document.location = "mailto:"+email+"?subject="+subject+"&body="+emailBody+
"?attach="+attach;
);
);
HTML:
<button class="SendEmail">Send Email</button>
【讨论】:
如何通过这种方式发送html内容【参考方案3】:在不使用 Jquery 的情况下以这种方式实现:
<button class="emailReplyButton" onClick="sendEmail(message)">Reply</button>
sendEmail(message)
var email = message.emailId;
var subject = message.subject;
var emailBody = 'Hi '+message.from;
document.location = "mailto:"+email+"?subject="+subject+"&body="+emailBody;
【讨论】:
【参考方案4】:试试这个: 它会直接打开默认邮件。
<a href="mailto:demo@demo.com"><img src="ICON2.png"></a>
【讨论】:
以上是关于自动打开默认电子邮件客户端并预填充内容的主要内容,如果未能解决你的问题,请参考以下文章
mailto实现将用户在网页中输入的内容传递到本地邮件客户端
如何使用 Flutter 打开 iPhone 上的默认电子邮件应用程序?