Google アプリ スクリプトで Google フォームをメールに埋め込んでいますが、フォームが Outlook および iPhone から正しく送信されません。Google Mail クライアントからのみ動作しますか?
iPhoneまたはOutlookからの送信の問題を解決する方法はありますか?
ありがとうアマニー
Google アプリ スクリプトで Google フォームをメールに埋め込んでいますが、フォームが Outlook および iPhone から正しく送信されません。Google Mail クライアントからのみ動作しますか?
iPhoneまたはOutlookからの送信の問題を解決する方法はありますか?
ありがとうアマニー
メールに埋め込まれたフォームを使用するには、メール クライアントが HTML フォームをサポートしている必要があります。Outlook には独自のフォームがありますが、html フォーム要素 (参照) はサポートされていません。iPhone のリファレンスは見つかりませんでしたが、html サポートも制限されている可能性があります。(私は携帯電話で Gmail クライアントを使用しています... フォームをサポートしています。)
メールでフォームを送信し、スプレッドシートで応答を追跡するのコードを使用している場合は、スクリプトを拡張doGet
して、メール クライアントで HTML フォームをサポートしていないユーザーに機能を提供できます。
これらの変更により、以前の要点が更新されました。(実際には、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 クライアントには、オンライン フォームへのクリック可能なリンクが表示されます。