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

时间:2012-11-05 11:24:28

标签: javascript mailto

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

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

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

4 个答案:

答案 0 :(得分:94)

RFC 6068所述,mailto允许您指定主题正文,以及 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链接。

答案 1 :(得分:7)

<强> 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>

答案 2 :(得分:1)

不使用Jquery实现这种方式:

[HttpPost]
[Route("update")]
public IActionResult Update(Auction item)
{
    string LocalVariable = HttpContext.Session.GetString("item_id");
    System.Console.WriteLine("?????????????");
    System.Console.WriteLine( LocalVariable);
    System.Console.WriteLine("?????????????");
    var intParse = Int32.Parse(LocalVariable);
    return RedirectToAction("LookUpItem",new {id = intParse});
}

[HttpGet] //change to HttpGet
[Route("LookUpItem/{id}")]
public IActionResult LookUpItem(int id)
{
    // logic here
    return View();
}

答案 3 :(得分:1)

请尝试使用

<a href="mailto:demo@demo.com"><img src="ICON2.png"></a>

我将直接打开默认邮件