4

Google アプリ スクリプトで Google フォームをメールに埋め込んでいますが、フォームが Outlook および iPhone から正しく送信されません。Google Mail クライアントからのみ動作しますか?

iPhoneまたはOutlookからの送信の問題を解決する方法はありますか?

ありがとうアマニー

4

1 に答える 1

4

メールに埋め込まれたフォームを使用するには、メール クライアントが HTML フォームをサポートしている必要があります。Outlook には独自のフォームがありますが、html フォーム要素 (参照) はサポートされていません。iPhone のリファレンスは見つかりませんでしたが、html サポートも制限されている可能性があります。(私は携帯電話で Gmail クライアントを使用しています... フォームをサポートしています。)

メールでフォームを送信し、スプレッドシートで応答を追跡するのコードを使用している場合は、スクリプトを拡張doGetして、メール クライアントで HTML フォームをサポートしていないユーザーに機能を提供できます。

これらの変更により、以前の要点が更新されました。(実際には、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 クライアントには、オンライン フォームへのクリック可能なリンクが表示されます。

于 2013-09-17T17:36:09.157 に答える