【GAS】Gmailの送信日時を取得する方法
Google Apps Script(GAS)を活用すると、Gmailの送信日時を簡単に取得できます。この機能は、メールの送信履歴を管理したり、データを分析する際に役立ちます。この記事では、送信日時の取得方法を解説し、具体的なコード例や応用例を紹介します。
目次
GASでGmailの送信日時を取得するメリット
- 履歴管理の効率化: 送信したメールの日時を取得することで、スプレッドシートなどに記録して履歴を簡単に管理できます。
- 業務改善: 特定の期間内に送信されたメールをフィルタリングし、業務フローを分析できます。
- 自動化: GASを使えば手動での確認作業を自動化し、時間を節約できます。
Gmailの送信日時を取得する基本方法
GASでは、GmailAppクラスのgetMessages()
やgetDate()
メソッドを使用して、特定のメールスレッドから送信日時を取得できます。
基本構文
let threads = GmailApp.search("条件");
threads.forEach(thread => {
let messages = thread.getMessages();
messages.forEach(message => {
let sendDate = message.getDate(); // 送信日時を取得
Logger.log(sendDate);
});
});
具体例:送信日時を取得するスクリプト
以下は、件名に「重要」というキーワードが含まれるメールの送信日時を取得するスクリプトです。
function getSendDates() {
// 件名に「重要」を含むメールを検索
const threads = GmailApp.search("subject:重要");
threads.forEach(thread => {
const messages = thread.getMessages();
messages.forEach(message => {
// 送信日時を取得
const sendDate = message.getDate();
console.log("送信日時: " + sendDate);
});
});
}
実行結果:
以下の形式で送信日時がログに出力されます。
送信日時: Wed Jan 01 2025 15:00:00 GMT+0900 (Japan Standard Time)
送信日時: Thu Jan 02 2025 10:30:00 GMT+0900 (Japan Standard Time)
応用例1: 送信日時をスプレッドシートに記録
メールの送信日時をスプレッドシートに記録することで、簡単に履歴を管理できます。
function saveSendDatesToSheet() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const threads = GmailApp.search("subject:重要");
let row = 1; // スプレッドシートの開始行
threads.forEach(thread => {
const messages = thread.getMessages();
messages.forEach(message => {
const sendDate = message.getDate();
// 日時をスプレッドシートに書き込み
sheet.getRange(row, 1).setValue(sendDate);
row++;
});
});
}
応用例2: 特定期間内の送信メールを抽出
以下のコードは、2025年1月1日から2025年1月31日までの送信メールの日時を取得する例です。
function getSendDatesByPeriod() {
const startDate = new Date(2025, 0, 1); // 2025年1月1日
const endDate = new Date(2025, 0, 31); // 2025年1月31日
const threads = GmailApp.search("after:2025/01/01 before:2025/02/01");
threads.forEach(thread => {
const messages = thread.getMessages();
messages.forEach(message => {
const sendDate = message.getDate();
// 期間内のメールのみ処理
if (sendDate >= startDate && sendDate <= endDate) {
console.log("期間内の送信日時: " + sendDate);
}
});
});
}
注意点
Gmail APIのリクエスト制限
- GASでのGmailデータ取得には、1日あたりのリクエスト制限があります(無料アカウントは100件/日)。
- 必要なデータだけを効率的に取得するようスクリプトを設計しましょう。
権限の確認
初回実行時にGmailへのアクセス権限が求められます。承認を行わないとスクリプトが動作しません。
データのセキュリティ
送信日時は業務上の重要な情報となる場合があります。取得データを適切に管理し、アクセス制限を設定しましょう。
まとめ
GASを使用することで、Gmailの送信日時を効率的に取得・管理できます。以下の手法を活用し、業務効率化を目指しましょう。
getDate()
メソッドで簡単に送信日時を取得- スプレッドシート連携で履歴を記録・管理
- 特定条件や期間での抽出を自動化
これらの方法をぜひ試してみてください!