4

我通过 Google 应用程序脚本在电子邮件中嵌入了 Google 表单,但表单无法从 Outlook 和 iPhone 正确提交。它仅适用于 Google Mail 客户端吗?

是否有办法解决从 iphone 或 Outlook 提交的问题?

谢谢阿曼尼

4

1 回答 1

4

要使用嵌入在电子邮件中的表单,电子邮件客户端需要支持 html 表单。Outlook 有自己的表单,但不支持 html 表单元素(参考)。我还没有找到 iPhone 的参考资料,但它可能也限制了对 html 的支持。(我在手机上使用 gmail 客户端……它支持表单。)

如果您正在使用Send form by email 中的代码并在电子表格中跟踪响应,那么您可以扩展您的脚本以为电子邮件客户端中不支持 HTML Forms 的用户提供一个doGet功能。

先前的要点已根据这些更改进行了更新。(实际上,gist 已经具备了这个doGet()功能。)

代码.gs

通过添加一个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 客户端将有一个可点击的在线表单链接。

于 2013-09-17T17:36:09.157 回答