如何用JavaScript打开Gmail空白邮件并填充表单收集的内容?
问题描述
我有一个收集评论和邮箱地址的表单,通过JavaScript实现发送功能:用户输入评论(变量note7),并指定收件邮箱地址(变量emailAddress)。但当前代码只能调用系统默认邮件客户端,我需要修改代码,让它直接打开Gmail的写信窗口,并自动填充收件邮箱、主题和评论内容。
原代码如下:
var player = GetPlayer(); var emailAddress = player.GetVar("emailAddress"); var note7 = player.GetVar("note7"); var subject = "Journal Notes"; var emailBody = note7 var mailto_link = 'mailto:' + emailAddress + '?subject=' + subject + '&body=' + encodeURIComponent(emailBody); win = window.open(mailto_link, 'emailWin');
修改后的代码与说明
要直接打开Gmail并自动填充内容,需要使用Gmail官方的写信URL格式,而非mailto:协议。修改后的代码如下:
var player = GetPlayer(); var emailAddress = player.GetVar("emailAddress"); var note7 = player.GetVar("note7"); var subject = "Journal Notes"; var emailBody = note7; // 构造Gmail写信URL,参数对应收件人、主题、内容 var gmailUrl = 'https://mail.google.com/mail/u/0/?view=cm&fs=1' + '&to=' + encodeURIComponent(emailAddress) + '&su=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(emailBody); // 打开Gmail写信窗口 win = window.open(gmailUrl, 'emailWin', 'width=800,height=600');
关键说明
- Gmail的写信URL通过
view=cm指定创建新邮件,fs=1表示启用全屏模式(可选参数) - 参数对应关系:
to为收件邮箱,su为邮件主题,body为邮件内容 - 所有参数都用
encodeURIComponent编码,避免空格、换行等特殊字符导致URL失效 - 可通过
window.open的第三个参数自定义新窗口尺寸,优化用户体验
内容的提问来源于stack exchange,提问作者KnotJen
相关产品推荐
相关产品推荐

