自动打开默认电子邮件客户端并预填充内容


76

当用户在页面上保存一些内容时,我需要自动打开他们的默认电子邮件客户端。我需要填充电子邮件主题,以进行处理,然后在电子邮件正文中放入一些内容。

实现这一目标的最佳选择是什么?

我知道该mailto:属性,但是用户必须单击该属性,并且不确定它是否允许您指定主题和内容?


您可以在mailto前缀的href中设置电子邮件的每个部分。这是我用来简化程序的工具:mailto.now.sh
Dawson B

Answers:


120

RFC 6068所述,mailto允许您指定subjectbody以及cc字段。例如:

mailto:username@example.com?subject=Subject&body=message%20goes%20here

如果您强制使用JavaScript打开链接,则用户无需单击链接

window.location.href = "mailto:user@example.com?subject=Subject&body=message%20goes%20here";

请注意,浏览器/电子邮件客户端没有简单的标准方式来处理mailto链接(例如,主题和正文字段可能会被丢弃而不会发出警告)。此外,还有弹出窗口和广告拦截器,防病毒软件等可能会默默阻止强制打开mailto链接的风险。


1
有没有办法使用jQuery将图像(不是URL,而是实际图像)加载到消息中?
Kousha 2014年

10
如果消息通过字符数限制怎么办?这是一个不错的解决方法,但这似乎并不是一个很好的解决方案。
leiseliesel

2
如果我需要添加其他内容作为示例图像,css或html,该怎么办
UDID

1
是否可以发送带有上述详细信息的附件?
Ajay Sharma

11

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>

8
如何通过这种方式发送html内容
Amay Kulkarni

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;
}

0

试试这个: 它将直接打开默认邮件。

<a href="mailto:demo@demo.com"><img src="ICON2.png"></a>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.