GAS開発者向けにGメールの添付機能をすべてまとめました。
あらかじめ準備しておいて、簡単に手早く添付できるようにしましょう。
添付に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。
- Gメールメッセージクラス[GmailMessage]の添付取得
- Gメール添付クラス[GmailAttachment]
- 添付コピー[copyBlob()]
- 添付変換取得[getAs(コンテンツタイプ)]
- 添付データ取得[getBytes()]
- 添付コンテンツタイプ取得[getContentType()]
- 添付UTF-8文字列データ取得[getDataAsString()]
- 添付指定文字列データ取得[getDataAsString(文字コード)]
- 添付ハッシュ取得[getHash()]
- 添付名取得[getName()]
- 添付ファイルサイズ取得[getSize()]
- 添付ファイルG Suite確認[isGoogleType()]
- 添付保存データ設定[setBytes(データ)]
- 添付コンテンツタイプ設定[setContentType(コンテンツタイプ)]
- 添付コンテンツタイプ拡張子設定[setContentTypeFromExtension()]
- 添付UTF-8文字列データ設定[setDataFromString(文字列]
- 添付指定文字列データ設定[setDataFromString(文字列, 文字コード)]
- 添付名設定[setName(名前)]
- 最後に
Gメールメッセージクラス[GmailMessage]の添付取得
Gメールのメッセージ添付取得メソッドです。
すべての添付ファイル取得1[getAttachments()]
getAttachments()
このメッセージのすべての添付ファイルを取得します。
Return
GmailAttachment[] - このメッセージのBlob添付ファイルの配列。
参照:Google Apps Script | REFERENCE | Gmail | Class GmailMessage | Methods | getAttachments()
すべての添付ファイル取得2[getAttachments(オプション's)]
getAttachments(options)
このメッセージのすべての添付ファイルを取得します。
名前 | タイプ | 説明 |
---|---|---|
options | Object | 以下にリストされているように、拡張パラメーターを指定するJavaScriptオブジェクト。 |
名前 | タイプ | 説明 |
---|---|---|
includeInlineImages | Boolean | 返されたBlob添付ファイルの配列にインライン画像が含まれる場合はtrue(デフォルトはtrue)。 |
includeAttachments | Boolean | 返されたBlob添付ファイルの配列に通常の(インラインではない)添付ファイルが含まれる場合はtrue(デフォルトはtrue)。 |
Return
GmailAttachment[] - このメッセージのBlob添付ファイルの配列。
参照:Google Apps Script | REFERENCE | Gmail | Class GmailMessage | Methods | getAttachments(options)
Gメール添付クラス[GmailAttachment]
Gmailからの添付ファイル。これは通常のBlobですが、追加のgetSize()メソッドがあり、getBytes()。lengthを呼び出すよりも高速で、Gmailの読み取り割り当てにカウントされません。
参照:Google Apps Script | REFERENCE | Gmail | Class GmailAttachment
function gmailAttachmentSample() {
// 最初の100個の受信トレイスレッドの添付ファイルに関する情報を記録します。
var threads = GmailApp.getInboxThreads(0, 100);
var msgs = GmailApp.getMessagesForThreads(threads);
for (var i = 0 ; i < msgs.length; i++) {
for (var j = 0; j < msgs[i].length; j++) {
var attachments = msgs[i][j].getAttachments();
for (var k = 0; k < attachments.length; k++) {
Logger.log('Message "%s" contains the attachment "%s" (%s bytes)',
msgs[i][j].getSubject(), attachments[k].getName(), attachments[k].getSize());
}
}
}
}
方法 | タイプ | 説明 |
---|---|---|
copyBlob() | Blob | このblobのコピーを返します。 |
getAs(contentType) | Blob | このオブジェクト内のデータを、指定されたコンテンツタイプに変換されたblobとして返します。 |
getBytes() | Byte[] | このblobに保存されているデータを取得します。 |
getContentType() | String | このblobのバイトのコンテンツタイプを取得します。 |
getDataAsString() | String | このblobのデータをUTF-8エンコーディングの文字列として取得します。 |
getDataAsString(charset) | String | このblobのデータを、指定されたエンコーディングの文字列として取得します。 |
getHash() | String | この添付ファイルのSHA1コンテンツハッシュを取得します。 |
getName() | String | このblobの名前を取得します。 |
getSize() | Integer | この添付ファイルのサイズを取得します。 |
isGoogleType() | Boolean | このblobがG Suiteファイル(シート、ドキュメントなど)かどうかを返します。 |
setBytes(data) | Blob | このblobに保存されているデータを設定します。 |
setContentType(contentType) | Blob | このblobのバイトのコンテンツタイプを設定します。 |
setContentTypeFromExtension() | Blob | ファイル拡張子に基づいて、このblobのバイトのコンテンツタイプを設定します。 |
setDataFromString(string) | Blob | UTF-8エンコーディングで文字列からこのblobのデータを設定します。 |
setDataFromString(string, charset) | Blob | 指定されたエンコーディングで文字列からこのblobのデータを設定します。 |
setName(name) | Blob | このblobの名前を設定します。 |
添付コピー[copyBlob()]
copyBlob()
このblobのコピーを返します。
Return
Blob - 新しいコピー。
添付変換取得[getAs(コンテンツタイプ)]
getAs(contentType)
このオブジェクト内のデータを、指定されたコンテンツタイプに変換されたblobとして返します。このメソッドは、ファイル名に適切な拡張子を追加します(たとえば、「myfile.pdf」)。ただし、最後のピリオド(存在する場合)に続くファイル名の部分は、置き換える必要がある既存の拡張子であると想定されます。その結果、「ShoppingList.12.25.2014」は「ShoppingList.12.25.pdf」になります。
名前 | タイプ | 説明 |
---|---|---|
contentType | String | 変換するMIMEタイプ。ほとんどのブロブでは、「application / pdf」のみが有効なオプションです。 BMP、GIF、JPEG、またはPNG形式の画像の場合、「image / bmp」、「image / gif」、「image / jpeg」、または「image / png」のいずれも有効です。 |
Return
Blob - ブロブとしてのデータ。
添付データ取得[getBytes()]
getBytes()
このblobに保存されているデータを取得します。
Return
Byte[] - 格納されたバイト。
添付コンテンツタイプ取得[getContentType()]
getContentType()
このblobのバイトのコンテンツタイプを取得します。
Return
String - このデータのコンテンツタイプ(既知の場合)、またはnull。
添付UTF-8文字列データ取得[getDataAsString()]
getDataAsString()
このblobのデータをUTF-8エンコーディングの文字列として取得します。
Return
String - 文字列としてのデータ。
添付指定文字列データ取得[getDataAsString(文字コード)]
getDataAsString(charset)
このblobのデータを、指定されたエンコーディングの文字列として取得します。
名前 | タイプ | 説明 |
---|---|---|
charset | String | このblobのデータを文字列としてエンコードする際に使用する文字セット。 |
Return
String - 文字列としてのデータ。
添付ハッシュ取得[getHash()]
getHash()
この添付ファイルのSHA1コンテンツハッシュを取得します。この方法は、Gmailの読み取りクォータにはカウントされません。
Return
String - 文字列としてのSHA1コンテンツハッシュ。
添付名取得[getName()]
getName()
このblobの名前を取得します。
Return
String - このデータの名前(わかっている場合)、またはnull。
添付ファイルサイズ取得[getSize()]
getSize()
この添付ファイルのサイズを取得します。このメソッドは、getBytes()。lengthを呼び出すよりも高速で、Gmailの読み取りクォータにはカウントされません。
Return
Integer - 添付ファイルのサイズ(バイト単位)。
添付ファイルG Suite確認[isGoogleType()]
isGoogleType()
このblobがG Suiteファイル(シート、ドキュメントなど)かどうかを返します。
Return
Boolean - このblobがG Suiteファイルの場合はtrue。そうでない場合はfalse。
添付保存データ設定[setBytes(データ)]
setBytes(data)
このblobに保存されているデータを設定します。
名前 | タイプ | 説明 |
---|---|---|
data | Byte[] | 新しいデータ。 |
Return
Blob - 連鎖用のBlob。
添付コンテンツタイプ設定[setContentType(コンテンツタイプ)]
setContentType(contentType)
このblobのバイトのコンテンツタイプを設定します。
名前 | タイプ | 説明 |
---|---|---|
contentType | String | 新しいコンテンツタイプ。 |
Return
Blob - 連鎖用のBlob。
添付コンテンツタイプ拡張子設定[setContentTypeFromExtension()]
setContentTypeFromExtension()
ファイル拡張子に基づいて、このblobのバイトのコンテンツタイプを設定します。 contentTypeは、拡張子から推測できない場合はnullです。
Return
Blob - 連鎖用のBlob。
添付UTF-8文字列データ設定[setDataFromString(文字列]
setDataFromString(string)
UTF-8エンコーディングで文字列からこのblobのデータを設定します。
名前 | タイプ | 説明 |
---|---|---|
string | String | 文字列データ。 |
Return
Blob - 連鎖用のBlob。
添付指定文字列データ設定[setDataFromString(文字列, 文字コード)]
setDataFromString(string, charset)
指定されたエンコーディングで文字列からこのblobのデータを設定します。
名前 | タイプ | 説明 |
---|---|---|
string | String | 文字列データ。 |
charset | String | 文字列をバイトとして解釈する際に使用する文字セット。 |
Return
Blob - 連鎖用のBlob。
添付名設定[setName(名前)]
setName(name)
このblobの名前を設定します。
名前 | タイプ | 説明 |
---|---|---|
name | String | 新しい名前。 |
Return
Blob - 連鎖用のBlob。
最後に
Gメールの添付機能のまとめをご紹介させていただきました.
スプレッドシートと組み合わせるとさらに効果的です。
必要に応じて、有益な情報でさらに更新していきたいと思います。
プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。
実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。
実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。
自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。
GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。
Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓
ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。
コメント