我通过 Google 应用程序脚本在电子邮件中嵌入了 Google 表单,但表单无法从 Outlook 和 iPhone 正确提交。它仅适用于 Google Mail 客户端吗?
是否有办法解决从 iphone 或 Outlook 提交的问题?
谢谢阿曼尼
我通过 Google 应用程序脚本在电子邮件中嵌入了 Google 表单,但表单无法从 Outlook 和 iPhone 正确提交。它仅适用于 Google Mail 客户端吗?
是否有办法解决从 iphone 或 Outlook 提交的问题?
谢谢阿曼尼
要使用嵌入在电子邮件中的表单,电子邮件客户端需要支持 html 表单。Outlook 有自己的表单,但不支持 html 表单元素(参考)。我还没有找到 iPhone 的参考资料,但它可能也限制了对 html 的支持。(我在手机上使用 gmail 客户端……它支持表单。)
如果您正在使用Send form by email 中的代码并在电子表格中跟踪响应,那么您可以扩展您的脚本以为电子邮件客户端中不支持 HTML Forms 的用户提供一个doGet
功能。
先前的要点已根据这些更改进行了更新。(实际上,gist 已经具备了这个doGet()
功能。)
通过添加一个doGet()
函数来扩展此代码,该函数将托管与您在电子邮件中嵌入的完全相同的表单。
/**
* GET handler to provide alternate online form.
*/
function doGet() {
// Build survey body
var template = HtmlService.createTemplateFromFile('emailTemplate');
template.scriptUrl = ScriptApp.getService().getUrl();
template.serialNumber = getGUID(); // Generate serial number for this response
var app = template.evaluate();
return app;
}
对sendSurvey()
函数进行以下修改:
var plainText = 'Please complete this survey online at: ' + scriptUrl;
html += '<p>Alternatively, you may <A href="' + scriptUrl + '"> complete this survey online.</A>';
// Send email form
GmailApp.sendEmail(recipient, subject, plainText, {htmlBody:html} );
现在,在其电子邮件客户端中不支持 HTML 的收件人将收到带有地址的纯文本消息,他们可以将地址粘贴到浏览器中,而没有<FORM>
支持的 HTML 客户端将有一个可点击的在线表单链接。