2

バックグラウンド ユーザーは Gmail (または Google Apps Sync 経由の Outlook) で「削除」ボタンを押す傾向がありますが、私たちはすべてのメッセージをアーカイブしたいと考えています (Google は 30 日ごとにゴミ箱をクリアします)。

これまで の解決策 次のスクリプトは、1 時間ごとにトリガーで実行され、ゴミ箱内のすべてのスレッドをアーカイブに移動します。

function archiveTrash() {
var threads = GmailApp.getTrashThreads(0, 100);
for (var i = 0; i < threads.length; i++) {
threads[i].moveToArchive();
}
}

問題ユーザーは、メッセージが受信トレイから消えていると報告しています。

考えられる原因これが起こっていることだと思います: ユーザーはメッセージのスレッドを処理していて、スレッド内のいくつかのメッセージを削除します (ユーザーは通常 Outlook を使用するため、各メッセージを個別に表示します)。ただし、スレッド内の他のメッセージはユーザーの受信トレイに残ります。次に、getTrashThreads が少なくとも 1 つの削除されたメッセージを含むスレッドを取得し、スクリプトが受信トレイにあったメッセージを含むスレッド全体をアーカイブに移動します。

解決?これは私が立ち往生しているところです。スレッド全体ではなく、ゴミ箱に移動したメッセージのみをアーカイブするにはどうすればよいですか? Gmailがメッセージをスレッドにグループ化するのを止める方法はありますか? 何が起こっているのかについて私は正しいですか?

4

3 に答える 3

0

それほど単純ではありませんが、可能な解決策:

ユーザー ToArchive@YourDomain.com を設定します

アーカイブされたメッセージのインデックスに対して、スレッドではなくメッセージ ID をチェックする削除されたメールを反復処理します (インデックスについては後で詳しく説明します)。

インデックスにないメッセージを ToArcive+messageId@YourDomain.com に転送します (@ は最大 64 文字なので問題ありません)。

To: からのメッセージ ID を解析する ToArchive 内のメッセージを反復処理し、インデックスに追加してから既読としてマークします。

ToArchive で既読メッセージをアーカイブする

于 2013-01-23T21:02:33.817 に答える
0

Gmail は、メッセージ レベルではなく、スレッド レベルでのアーカイブのみをサポートしていますが、個々のメッセージを削除することはできます。あなたのユースケースはサポートされていないと思います。

于 2013-01-23T16:35:26.580 に答える
0

スレッドかどうかを確認しますisInInbox()。そうでない場合は、スレッドをアーカイブします。ある場合は、アーカイブしてからmoveToInbox().

編集:質問の最後の部分を見逃しました。Outlook の受信トレイに表示されないように、特定のメッセージをアーカイブする方法がわかりません。Gmail でスレッド ビューをオフにすることはできますが、それがスレッドにどのような影響を与えるかはわかりません。

于 2013-01-23T20:55:36.397 に答える