在电子邮件中嵌入Google表单?

时间:2013-09-17 13:20:58

标签: google-apps-script google-apps google-form

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

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

由于 Amany

1 个答案:

答案 0 :(得分:4)

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

如果您正在使用Send form by email and track responses in spreadsheet中的代码,那么您可以扩展脚本,为在其电子邮件客户端中没有HTML表单支持的用户提供doGet功能。

previous gist已根据这些更改进行了更新。 (实际上,要点已经具有doGet()功能。)

Code.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客户端将具有指向在线表单的可点击链接。 / p>