2012-05-02 12 views
14

GoogleAppsForBusinessドメイン内で動作するデーモンスクリプトが受信メールを解析できるパターンの例を探しています。一部のメッセージには、別のGAScriptへの呼び出しが含まれます。たとえば、特定のドキュメントのACL設定を変更することができます。電子メールでGoogle Apps Scriptをトリガーする

私は他の誰かが既にこのパターンを実装していると仮定していますが、どのようにして例を見つけるかわかりません。あなたがAppsスクリプトuser guidetutorialsでのスクリプトの例を見つけることができます

THX

答えて

13

forumで関連するディスカッションを検索することもできます。しかし、私は正確にあなたに合ったものはないと思っています。すべてのコードは確かにそこにありますが、単一のスクリプトではありません。

誰かがこのようなスクリプトを書いて、それを公開したことはない可能性があります。それはやや単純なので、みんなの使い方が違います。たとえば、電子メールのマーキング(既に読んだこと、実行したことなど)をどのように計画していますか? Gmailのフィルタを使ってすぐにラベルに「コマンド」メールを入れ、スクリプトでラベルを削除するだけで、別のラベルを設定することもできます。ポイントは、それがどう違うかを見てください。

また、すべての機能を同じスクリプトプロジェクトに保存することができれば簡単だと思います。たぶん異なるファイルにある可能性があります。別のスクリプトを呼び出すのはもっと複雑です。

とにかく、彼は私がそれを開始したい方法は次のとおりです。

//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:私はこのコード

+4

は現在、電子メールを受信したときに)代わりにちょうどタイマーを設定する(スクリプトをトリガする方法はありますか? – Trevor

+0

@threedわかりません –

+0

それはちょうど役に立たないです。 GMailのprocmailのようなものはありませんか? – Michael

6

をテストしていないあなたがに送信され、受信電子メールメッセージによってトリガーされるGoogleのアプリを作成することができますアプリの特別な住所。メッセージは、あなたのアプリが受け取るHTTP POSTに変換されます。ここ

詳細は: https://developers.google.com/appengine/docs/python/mail/receivingmail

私はまだこれを自分で試してみましたが、やりなさい、今後数日でそうなります。

+3

質問は、AppEngineではなく、Google Apps Scriptのソリューションについて質問していました。 –

+3

ああ、それは、似たような名前の商品が多すぎて、重複して混乱してしまった結果です...私の最善を尽くすことに謝りました。 私自身の実装は途中で成功しました。 –

+0

@EdRandallしばらく経っていますが、実装した基本的なロジックを共有することはできますか?私は似たようなものが必要なので、電子メールでPythonスクリプトを起動する必要があります(Pythonスクリプトは現在EC2インスタンス上にありますが、Appengineに移動することもできます)。ありがとう – newyuppie

-1

2つの方法があります。まず、Googleのpub/subを使用して、AppScritエンドポイントで受信通知を処理できます。もう1つは、AppScriptコードan example hereの中にgoogleapis npmパッケージを使用することです。それが役に立てば幸い。

これらは、手順は次のとおりです。

  • https://console.cloud.google.com/cloudpubsub/topicList?project=testmabs事にプロジェクトを作ったのですか?
  • のpubsubトピック
  • を作っ
  • は私が推測する、私が所有するサイトにそのURLを追加したウェブフックURLにサブスクリプションを作ったのですか?サブスクリプションを追加しようとしたとき、私は私は私はそれを所有確認するために、DNSの事をしなければならなかったと思うし、エラーがそれは私がやっていたものだっ把握するスーパー漠然とした、
  • は、「Gmailの-APIのトピックへのアクセス許可を追加しました[email protected]」パブリッシャーとして(私も追加.... apps.googleusercontent.comと[email protected]が、私は、私はそれらを必要と思ういけない)
  • はOAuthクライアント情報を作成し、それをダウンロードGoogleコンソールの[アカウント情報]セクションで(oauthtrash。JSON)
+2

このリンクは質問に答えるかもしれませんが、ここに答えの重要な部分を含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 16436033) –

+0

ありがとう、私は私の答えを修正します –

関連する問題