2017-06-21 12 views
1

mailapp.sendemail内のSetTimeOut()機能を正しく使用する方法を尋ねる必要があります。mailapp.sendemailを使用して電子メールを送信する

var sendmail2 = date+1*3600000*24; 
MailApp.sendEmail (userEmail, subject2, message2, {setTimeout:[sendmail2]}); 
+0

によってこれを行うことができると思いませんか? W3Schoolsは 'setTimeout()メソッドは関数を呼び出したり、指定されたミリ秒後に式を評価したりします。それはあなたがしているように見えるものではありません。ご質問をより明確にしてください。 – Brody

+0

MailApp.sendEmailを使用して、指定した時間が経過した後に2番目のメールを送信できるようにしたいと考えています。 – Jacky

答えて

0

はあなたが達成しようとしている何

var delay = timePeriod; 
MailApp.SendEmail(...email parameters...) 
setTimeout(delay, function() { MailApp.SendEmail (...New mail parameters...) }); 
+0

スクリプトエラーは発生しませんが、動作しません。 function myFunction(e){ var userEmail = e.values [1]; var date = e.values [0]; var subject = "Optin"; var message = "ありがとう、あなたのeBookリクエストを受け取りました"; var DOC = DriveApp.getFileById( "1-xxx"); var PDF = DOC.getAs(MimeType.PDF); MailApp.sendEmail(userEmail、件名、メッセージ、{添付ファイル:[PDF]}); var delay = date + 2 * 1000 * 60; var subject2 = "自動応答の缶詰め-2"; var message2 = "これはテストです。"; setTimeout(delay、function(){MailApp.SendEmail(userEmail、subject2、message2)}); } – Jacky

+0

タイムアウトの範囲が大きすぎると思います。 2分はブラウザで長い時間です - それはJavaScriptによってタイムアウトしている可能性があります。 – Brody

+0

ありがとう、ブロディ。これを回避する唯一の方法は、スプレッドシート内の新しいセルに新しい日付値を割り当てることです。 これが完了すると、スクリプトは新しいセルの日付に基づいて2番目の電子メールを送信するように呼び出されます。 – Jacky

関連する問題