我正在生成一个mailto:
链接,其中也包含电子邮件的正文。我正在使用JavaScript打开链接以启动操作系统的mailto:
客户端。在Chromebook上,链接打开的Gmail带有电子邮件地址,但没有电子邮件正文。这是链接:
var MailToLink = 'mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck.'
这是我用来打开链接的行:window.open(MailToLink, '_blank');
它在具有Thunderbird和Android版Gmail的Windows 10操作系统上运行良好。
我需要为Chromebook进行更改吗?
答案 0 :(得分:3)
如何设置location.href
而不是创建弹出窗口?
location.href = "mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck."
寻找可靠和/或官方来源的答案。
很高兴知道,邮件链接中的主题和正文在RFC 2368 - The mailto URL scheme
中有所描述客户 将mailto URL解析为邮件消息应该能够正确 使用“主题”和“正文”创建符合RFC 822的邮件消息 标头。
也请注意,“不安全标题”中有一段-因此,我认为内容可能也很重要。
不安全的标头
解释mailto URL的用户代理应该选择不创建 消息,如果任何标题被认为是危险的;它也可能 选择仅使用以下标题中的一部分创建消息 网址。仅相信主题,关键字和正文标头 既安全又有用。
答案 1 :(得分:2)
尝试一下
var MailToLink = 'mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck.'
var sendEmail = document.getElementById('sendEmail');
sendEmail.addEventListener('click', function (e){
window.location.href = MailToLink;
});
<input type="button" id="sendEmail" value="submit">
答案 2 :(得分:1)
另一个稳定的选择是使用<a>
并使用javascript编辑href
。
例如
var mailto = "mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck."
document.getElementById("myLink").setAttribute("href", mailto)
<html>
<body>
<a id="myLink">Create email now!</a>
</body>
</html>
不确定这是否符合您的要求。
答案 3 :(得分:0)
最简单的方法可能是使用经典邮件使用锚标记进行链接,但是,我猜您是出于特定原因使用JavaScipt,所以如果您将简单名称指定为第二个参数而不是一个'_blank'或'_self'值的形式。例如,您可以将其命名为“ emailWindow” 或类似名称。
以下是使用窗口名称https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Parameters
启发的MDN链接,下面是一些代码进行测试。
*注意:出于安全原因,我相信StackOverflow已禁用了打开新窗口的功能,因此您必须在本地测试按钮代码,对不起
var MailToLink = 'mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck.'
const sendEmailButton = document.getElementById('sendEmailButton');
sendEmailButton.onclick = () => {
window.open(MailToLink, 'emailWindow');
if (window.open && !window.closed) {window.close();}
};
<h1>Anchor Tag and Button Versions of Mail To</h1>
<h2>The anchor tag version</h2>
<a href="mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck.">test mail to using href</a>
<h2>the button version</h2>
<button type="button" id="sendEmailButton">test mail to using button</button>