如果您使用 jQuery 并希望扩展其功能来实现此目的,这里有一个与公认答案非常相似的替代解决方案。与其他答案一样好,但我认为我会抛出我使用的替代解决方案。到目前为止,我在跨浏览器使用方面没有任何问题。我没有回去尝试旧版本的 IE,只是使用每个浏览器的更新版本来测试。
扩展 jQuery 以包含您的自定义邮件功能
$(function () {
$.fn.myMailer = function () {
this.display = function() {
var url = 'mailto:' + this.To +
'?subject=' + encodeURIComponent(this.Subject) +
'&body=' + encodeURIComponent(this.HTMLBody);
window.location = url;
return true;
}
}
});
示例用法:
var myMailItem = new $.fn.myMailer();
myMailItem.To = 'yourEmail@domain.com';
myMailItem.Subject = 'Your Subject';
myMailItem.HTMLBody = 'Whatever you want your E-Mail to say';
myMailItem.display(0);
此外,如果您想添加 CC 或 BCC 收件人,请按照上面的结构将它们添加到 mailto 查询字符串中好吧。
我还尝试在客户端计算机上的 Outlook 电子邮件中获取附件
$(function () {
$.fn.myMailer = function () {
this.display = function() {
var url = 'mailto:' + this.To + '?content-type=' +
encodeURIComponent('multipart/form-data') +
'&subject=' + encodeURIComponent(this.Subject) +
'&body=' + encodeURIComponent(this.HTMLBody) +
'&attachment=' + encodeURIComponent(this.Attachment);
window.location = url;
return true;
}
}
});
我的尝试失败了。我不确定这是否可能仅来自使用客户端代码。我可能是错的。如果可能的话,我认为这也可能构成安全威胁。
我想说这里最好的选择是使用客户端脚本来调用一些服务器端代码,但是您更愿意这样做并让服务器发送电子邮件(如果适用)。
但是,我需要将附件添加到 Outlook 电子邮件中,该电子邮件会在客户端计算机上弹出,因此我仍在研究如何根据我的情况处理添加附件的最终细节。使用 .NET 我认为应该有一些方法来处理这个我只是还没有时间实现服务器端处理程序来完成它。如果其他人正在尝试使用 .NET 完成同样的事情,here 是开始使用 Outlook 2013 MailItem 属性的好链接。