2017-04-03 16 views
0

メッセージを受信した曜日を確認するためのアプリスクリプトを取得しようとすると、土曜日と日曜日のような特定の日にメッセージが受信された場合にメッセージが自動返信されます。私はいくつかのテキスト、キャリッジリターンなどのために色を含むようにメッセージのテキストを幾分フォーマットしようとしています。私は2つのエラーで動作する以下のコードを持っています。 1.返信テキストはフォーマットされていません。 2.誰かが不在メッセージをオンにした場合、私はループの電子メールで終わります。これは、自動返信が返信するメッセージスレッドにラベルを追加することで修正できますか?appsスクリプト再呼び出し中止メッセージ

ご協力いただきありがとうございます。

function autoReply() { 
    var interval = 5;   // if the script runs every 5 minutes; change otherwise 
    var daysOff = [6,0]; // 1=Mo, 2=Tu, 3=We, 4=Th, 5=Fr, 6=Sa, 0=Su 
    var message = "**Auto Reply** Thank you for your email! I am out of the office for the weekend spending time with my family. I will be back in the office Monday at 8:00 am. My usual office hours are Monday- Friday 8:00 am-4:00 pm EST. I monitor email periodically over weekends for emergencies. I look forward to assisting you. Thank you!"; 
    var date = new Date(); 
    var day = date.getDay(); 
    if (daysOff.indexOf(day) > -1) { 
    var timeFrom = Math.floor(date.valueOf()/1000) - 60 * interval; 
    var threads = GmailApp.search('is:inbox after:' + timeFrom); 
    for (var i = 0; i < threads.length; i++) { 
     threads[i].reply(message); 
    } 
    } 
} 

答えて

0

まず、メッセージにはフォーマットがありません。本質的には、プレーンテキストの応答を送信しています。文字列にHTML書式を使用し、htmlBodyパラメータとして使用します(詳細はhereを参照してください)。

次は返信のループです。 Googleには外出先の返信システムが組み込まれています。彼らのやり方は、誰かが数日前に自動返信を受け取るだけだからです。私は同様のことをすることをお勧めします。 scripが起動すると、PropertiesService.getUserProperties()(詳細はhereを参照)を使用して電子メールを保存します。だから、基本的にあなたが受信した電子メールメッセージからemailをつかむ必要がありますし、あなたはすでにdateを持って

PropertiesService.getUserProperties().setProperty(email, date) 

をやっているでしょう。関係するすべての電子メールを取得し、同じメッセージを全員に通知することができますので、電子メールごとに別々のエントリを作成するためにループする必要があります。

はつまり、あなたの機能のbegginingで早期に電子メールを取得し、PropertiesService.getUserProperties().getProperty(email)を試してみたいとあなたが非nullまたはundefinedプロパティを取得するために管理する場合は、すでに送信したため、あなたはreturnとの機能のうち終了する必要がありますそれらの返事とあなたはもう必要はありません。

関連する問題