【GAS】Gmailの添付ファイル名を取得する方法
GASgetAttachments,getName,GmailApp
Google Apps Script(GAS)を使えば、Gmailの添付ファイル名を自動で取得し、リスト化したり、条件に応じて処理を実行することが可能です。この機能は、添付ファイルの管理や、特定のファイルを操作する際に役立ちます。この記事では、添付ファイル名を取得する具体的な方法を解説します。
Gmailの添付ファイル名を取得する方法
GASでは、GmailAppクラスのgetAttachments
メソッドを使用してメールに添付されたファイルを取得し、その名前を取得できます。
基本構文
function getAttachmentNames() {
// 件名に「レポート」を含むメールを検索
const threads = GmailApp.search("subject:レポート");
threads.forEach(thread => {
const messages = thread.getMessages();
messages.forEach(message => {
const attachments = message.getAttachments();
attachments.forEach(attachment => {
const fileName = attachment.getName(); // ファイル名を取得
Logger.log("添付ファイル名: " + fileName);
});
});
});
}
実行結果
添付ファイル名: report_2025.pdf
添付ファイル名: summary.xlsx
添付ファイル名: data_chart.png
具体例2: 添付ファイル名をスプレッドシートに記録
以下のスクリプトは、取得した添付ファイル名をスプレッドシートに記録する例です。
function saveAttachmentNamesToSheet() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const threads = GmailApp.search("has:attachment"); // 添付ファイルありのメールを検索
let row = 1; // スプレッドシートの開始行
threads.forEach(thread => {
const messages = thread.getMessages();
messages.forEach(message => {
const attachments = message.getAttachments();
attachments.forEach(attachment => {
const fileName = attachment.getName();
sheet.getRange(row, 1).setValue(fileName); // ファイル名を記録
row++;
});
});
});
}
スプレッドシート例
添付ファイル名 |
---|
report_2025.pdf |
summary.xlsx |
data_chart.png |
具体例3: 特定のファイル名に一致する添付ファイルを抽出
以下は、特定のファイル名(例: report_2025.pdf
)に一致する添付ファイルを抽出する例です。
function filterAttachmentByName() {
const threads = GmailApp.search("has:attachment");
threads.forEach(thread => {
const messages = thread.getMessages();
messages.forEach(message => {
const attachments = message.getAttachments();
attachments.forEach(attachment => {
if (attachment.getName() === "report_2025.pdf") {
Logger.log("一致する添付ファイル: " + attachment.getName());
}
});
});
});
}
注意点
Gmail APIの制限
GASを使用したGmail操作には、1日あたりのリクエスト数制限があります。無料アカウントの場合は100件/日が上限です。
添付ファイルがないメールの処理getAttachments
メソッドは空の配列を返す場合があるため、必ず配列の長さを確認してください。
ファイル名の重複
異なるメールの添付ファイルでも同じ名前が付けられている場合があります。重複処理を考慮して運用する必要があります。
まとめ
この記事では、GASを使ったGmailの添付ファイル名の取得方法を解説しました。
- GmailAppの
getAttachments
メソッドを使用して添付ファイルを取得 - ファイル名をログに出力またはスプレッドシートに記録
- 特定の条件に一致する添付ファイルを抽出
これらの方法を活用し、効率的な添付ファイル管理を実現してください。
関連記事
【GAS】Gmail添付ファイルの取得と自動保存
この記事では、Google Apps Script(GAS)を使って添付ファイル ...
【GAS】Gmailから条件指定で検索して情報を取得する
Google Apps Script(GAS)では、メールの内容を取得して様々な ...
【GAS】 Gmail連携の基本
Google Apps Script(GAS)ではGoogle系アプリ(Gmai ...
【GAS】Gmailで送信予約を自動化する方法
Google Apps Script(GAS)を活用することで、Gmailで送信 ...
【GAS】GmailApp.searchの使い方
Google Apps Script(GAS)では、Gmailの中から特定の条件 ...