GmailMessage.getId()でタスク管理を効率化!GASでGmailのメッセージIDを活用したプロジェクト管理術
GmailのメッセージIDを使って、プロジェクト管理を効率化する方法をご紹介します。GmailMessage.getId()を使うことで、Gmailのメッセージを一意に識別し、タスク管理システムと連携させることが可能です。本記事では、GAS(Google Apps Script)を活用して、GmailのメッセージIDをタスク管理に役立てる具体的な方法を解説します。
GmailMessage.getId()とは?
GmailMessage.getId()は、GASでGmailのメッセージを一意に識別するための関数です。このIDを使用することで、特定のメッセージを検索したり、タスク管理システムと連携させたりすることができます。
GmailMessage.getId()の基本的な使い方
GmailMessageオブジェクトからメッセージIDを取得するには、以下のコードを使用します。
function getMessageId(message) {
const messageId = message.getId();
return messageId;
}
GASを使ったタスク管理の実装方法
GmailのメッセージIDをタスク管理に活用する具体的な方法を、コード例を交えて解説します。
1. 新規タスクの自動登録
特定のラベルが付いたGmailのメッセージを受信したら、自動的にタスク管理スプレッドシートにタスクを登録する例です。
function createTaskFromGmail() {
// ラベル名
const labelName = "Task";
// スプレッドシートID
const spreadsheetId = "YOUR_SPREADSHEET_ID";
// シート名
const sheetName = "Tasks";
// ラベルを取得
const label = GmailApp.getUserLabelByName(labelName);
// ラベルが付いたスレッドを取得
const threads = label.getThreads();
for (const thread of threads) {
const messages = thread.getMessages();
for (const message of messages) {
// メッセージIDを取得
const messageId = message.getId();
// メッセージの件名を取得
const subject = message.getSubject();
// メッセージの送信者を取得
const sender = message.getFrom();
// スプレッドシートに書き込む
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheet = ss.getSheetByName(sheetName);
sheet.appendRow([messageId, subject, sender, new Date()]);
}
// 処理済みのスレッドからラベルを削除
thread.removeLabel(label);
}
}
2. タスク完了時のステータス更新
タスク完了を知らせるメールを受信したら、スプレッドシートのタスクステータスを自動的に更新する例です。メールの件名や本文に含まれるキーワードを基に、タスクを識別します。
function updateTaskStatus() {
// 検索キーワード
const searchKeyword = "[完了]";
// スプレッドシートID
const spreadsheetId = "YOUR_SPREADSHEET_ID";
// シート名
const sheetName = "Tasks";
// ステータスを更新する列番号(A列から数えて)
const statusColumn = 5;
// Gmailを検索
const threads = GmailApp.search(searchKeyword);
for (const thread of threads) {
const messages = thread.getMessages();
for (const message of messages) {
// メッセージIDを取得
const messageId = message.getId();
// スプレッドシートを開く
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheet = ss.getSheetByName(sheetName);
// データ範囲を取得
const range = sheet.getDataRange();
const values = range.getValues();
// メッセージIDと一致する行を検索
for (let i = 0; i < values.length; i++) {
if (values[i][0] === messageId) {
// ステータスを更新
sheet.getRange(i + 1, statusColumn).setValue("完了");
}
}
}
}
}
3. タスクのリマインダー設定
期日が近づいたタスクのリマインダーメールを自動送信する例です。スプレッドシートに記載された期日とタスク内容に基づいて、メールを送信します。
function sendTaskReminder() {
// スプレッドシートID
const spreadsheetId = "YOUR_SPREADSHEET_ID";
// シート名
const sheetName = "Tasks";
// 期日の列番号(A列から数えて)
const dueDateColumn = 4;
// タスク内容の列番号(A列から数えて)
const taskColumn = 2;
// リマインダーを送信する日数前の設定
const reminderDays = 1;
// スプレッドシートを開く
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheet = ss.getSheetByName(sheetName);
// データ範囲を取得
const range = sheet.getDataRange();
const values = range.getValues();
// ヘッダー行をskip
for (let i = 1; i < values.length; i++) {
const dueDate = new Date(values[i][dueDateColumn - 1]);
const task = values[i][taskColumn - 1];
// 今日の日付を取得
const today = new Date();
// リマインダーを送信する日を計算
const reminderDate = new Date(dueDate.setDate(dueDate.getDate() - reminderDays));
// 期日が今日から指定日数以内の場合にリマインダーを送信
if (reminderDate <= today) {
// メールの送信先
const recipient = "example@example.com";
// メールの件名
const subject = "【リマインダー】" + task;
// メールの本文
const body = task + "の期日が近づいています。";
// メールを送信
GmailApp.sendEmail(recipient, subject, body);
}
}
}
よくある問題とトラブルシューティング
- Gmail APIが有効になっていない:GASでGmail APIを使用するには、事前に有効にする必要があります。
- スプレッドシートIDが間違っている:スプレッドシートIDが正しいか確認してください。
- 権限の問題:GASがGmailやスプレッドシートにアクセスするための権限が付与されているか確認してください。
カスタマイズ方法と応用例
これらのコード例を基に、様々なカスタマイズが可能です。
- タスク管理システムの連携:AsanaやTrelloなどのタスク管理システムと連携させる。
- Slackへの通知:タスクの追加や完了時にSlackに通知する。
- Google Calendarとの連携:タスクの期日をGoogle Calendarに登録する。
まとめ
GmailMessage.getId()とGASを活用することで、GmailのメッセージIDをタスク管理に有効活用できます。本記事で紹介したコード例を参考に、日々の業務を効率化してみてください。

CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。
CodeCampで理想の働き方を実現しよう