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

问题描述 投票:0回答:5

当用户在页面上保存某些内容时,我需要自动打开用户的默认电子邮件客户端。我需要填充电子邮件主题、地址并在电子邮件正文中添加一些内容。

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

我知道

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

javascript mailto
5个回答
173
投票

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

mailto:[email protected]?subject=Subject&body=message%20goes%20here

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

window.location.href = "mailto:[email protected]?subject=Subject&body=message%20goes%20here";

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


21
投票

JQuery:

$(function () {
      $('.SendEmail').click(function (event) {
        var email = '[email protected]';
        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>

6
投票

不使用Jquery以这种方式实现:

<button class="emailReplyButton" onClick="sendEmail(message)">Reply</button>

function 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:[email protected]"><img src="ICON2.png"></a>

0
投票

自动在新选项卡中打开 gmail 并填充字段:

网址应该是,

https://mail.google.com/mail/?view=cm&fs=1&[email protected]&su=${subject}&body=${message}


示例:

const subject = `${formData.fullName} - ${formData.subject}` const message = `${formData.message}` const mailtoLink = `https://mail.google.com/mail/?view=cm&fs=1&[email protected]&su=${subject}&body=${message}` window.open(mailtoLink, '_blank') // this would open gmail in new link
注意:对于主题,查询参数 

subject

 不起作用,但 
su
 对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.