14

GoogleAppsForBusiness ドメイン内で実行されているデーモン スクリプトが受信メール メッセージを解析できるパターンの例を探しています。一部のメッセージには、特定のドキュメントの ACL 設定を変更するなど、別の GAScript への呼び出しが含まれます。

他の誰かがすでにこのパターンを実装していると思いますが、例を見つける方法がわかりません。

どうも

4

3 に答える 3

14

スクリプトの例については、Apps Scriptユーザー ガイドチュートリアルを参照してください。フォーラムで関連するディスカッションを検索することもできます。しかし、あなたにぴったり合うものはないと思います。すべてのコードは確かにありますが、単一のスクリプトではありません。

誰かがそのようなスクリプトを書き、それを公開しなかった可能性があります。やり方は簡単で、使い方は人それぞれです。たとえば、メールをどのようにマークする予定ですか (既に読んだメール、実行したメールなど)。「コマンド」メールをすぐにラベルに入れ、スクリプトがラベルを削除するだけです (場合によっては別のラベルを設定します)。ポイントは、それがどのように大きく異なるかを確認することです。

また、全ての関数を同じスクリプトプロジェクトにまとめていただけるとやりやすいと思います。おそらく別のファイルだけです。さまざまなスクリプトを呼び出すのははるかに複雑です。

とにかく、彼は私がそれを始める方法です:

//set a time-driven trigger to run this function on the desired frequency
function monitorEmails() {
  var label = GmailApp.getUserLabelByName('command');
  var doneLabel = GmailApp.getUserLabelByName('executed');
  var cmds = label.getThreads();
  var max = Math.min(cmds.length,5);
  for( var i = 0; i < max; ++i ) {
    var email = cmds[i].getMessages()[0];
    var functionName = email.getBody();
    //you may need to do extra parsing here, depending on your usage

    var ret = undefined;
    try {
      ret = this[functionName]();
    } catch(err) {
      ret = err;
    }
    //replying the function return value to the email
    //this may make sense or not
    if( ret !== undefined )
      email.reply(ret);
    cmds[i].removeLabel(label).addLabel(doneLabel);
  }
}

ps: このコードはテストしていません

于 2012-05-03T03:47:53.443 に答える
6

アプリの特別なアドレスに送信された受信メール メッセージによってトリガーされる Google アプリを作成できます。メッセージは、アプリが受信する HTTP POST に変換されます。

詳細はこちら: https://developers.google.com/appengine/docs/python/mail/recomingmail

私はまだこれを自分で試していませんが、今後数日でそうする予定です。

于 2012-07-08T23:22:43.040 に答える