GmailApp.moveThreadsToArchiveでプロジェクト管理を効率化!GASで進捗メールを自動アーカイブ
プロジェクト管理では、大量のメールが飛び交い、重要な情報が埋もれてしまいがちです。特に、進捗報告メールなどは、対応が終わるとアーカイブしておきたいものの、手動で整理するのは手間がかかります。そこで、Google Apps Script (GAS) の GmailApp.moveThreadsToArchive
を活用することで、特定の条件を満たす進捗報告メールを自動的にアーカイブし、受信トレイを常に整理された状態に保つことができます。
GmailApp.moveThreadsToArchiveとは
GmailApp.moveThreadsToArchive
は、Gmailの特定のスレッドをアーカイブするためのGASの関数です。アーカイブすることで、受信トレイからメールを削除せずに、後で参照できるように保管できます。
プロジェクト管理における実装方法
プロジェクト管理において、進捗報告メールを自動アーカイブするために、以下の手順でGASを実装します。
- 特定の条件(件名、送信者、ラベルなど)に合致するスレッドを検索
- 見つかったスレッドをアーカイブ
- 定期的に実行するようにトリガーを設定
実用的なコード例
例1:特定のプロジェクト名の進捗報告メールをアーカイブ
function archiveCompletedTasks() {
// プロジェクト名を定義
const projectName = "[プロジェクトA]";
// 検索クエリを定義 (件名にプロジェクト名が含まれるメールを検索)
const searchQuery = "subject:" + projectName + " 完了報告";
// スレッドを検索
const threads = GmailApp.search(searchQuery);
// スレッドをアーカイブ
for (const thread of threads) {
thread.moveToArchive();
Logger.log("スレッドをアーカイブしました: " + thread.getFirstMessageSubject());
}
}
解説:このコードは、件名に「[プロジェクトA] 完了報告」という文字列が含まれるメールスレッドを検索し、見つかったスレッドをアーカイブします。projectName
変数を変更することで、別のプロジェクトのメールをアーカイブできます。
例2:特定の送信者からのメールをアーカイブ
function archiveEmailsFromSpecificSender() {
// 送信者のメールアドレスを定義
const senderEmail = "example@example.com";
// 検索クエリを定義 (特定の送信者からのメールを検索)
const searchQuery = "from:" + senderEmail;
// スレッドを検索
const threads = GmailApp.search(searchQuery);
// スレッドをアーカイブ
for (const thread of threads) {
thread.moveToArchive();
Logger.log("スレッドをアーカイブしました: " + thread.getFirstMessageSubject());
}
}
解説:このコードは、指定されたメールアドレスからのメールスレッドを検索し、アーカイブします。特定の担当者からの進捗報告メールを自動的にアーカイブする場合に便利です。
例3:特定の日数以上経過したメールをアーカイブ
function archiveOldEmails() {
// 経過日数(例:30日)
const days = 30;
// 日付を計算
const olderThan = new Date();
olderThan.setDate(olderThan.getDate() - days);
// 検索クエリを定義 (指定された日数より古いメールを検索)
const searchQuery = "older_than:" + days + "d";
// スレッドを検索
const threads = GmailApp.search(searchQuery);
// スレッドをアーカイブ
for (const thread of threads) {
thread.moveToArchive();
Logger.log("スレッドをアーカイブしました: " + thread.getFirstMessageSubject());
}
}
解説:このコードは、指定された日数以上経過したメールスレッドを検索し、アーカイブします。一定期間が経過した進捗報告メールを自動的にアーカイブする場合に役立ちます。
よくある問題とトラブルシューティング
- GASの実行権限エラー:GASの実行には、Gmailへのアクセス許可が必要です。スクリプトの実行時に権限を付与してください。
- 検索クエリが正しくない:検索クエリが正しくないと、意図したメールがアーカイブされない場合があります。Gmailの検索オプションを参考に、正しいクエリを設定してください。
- トリガーが正常に動作しない:トリガーの設定が間違っていると、スクリプトが定期的に実行されません。トリガーの設定を確認し、実行頻度や時間などを調整してください。
カスタマイズ方法と応用例
- アーカイブする前にスプレッドシートに記録:アーカイブする前に、メールの情報をスプレッドシートに記録することで、アーカイブされたメールの管理を効率化できます。
- 特定のラベルが付いたメールをアーカイブ:特定のラベルが付いたメールをアーカイブするようにスクリプトを修正することで、より柔軟なメール管理が可能です。
- アーカイブ後にSlackに通知:アーカイブ後にSlackに通知することで、チームメンバーにアーカイブされたメールの情報を共有できます。
まとめ
GmailApp.moveThreadsToArchive
を活用することで、プロジェクト管理における進捗報告メールの自動アーカイブを実現し、受信トレイを常に整理された状態に保つことができます。今回紹介したコード例を参考に、ぜひGASを導入して、プロジェクト管理を効率化してください。
CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。
CodeCampで理想の働き方を実現しよう