LoginSignup
0
1

[Gmail API] Javaでメールを削除する、ゴミ箱に捨てる

Posted at

Gmail API v1(Java)を使用して、
Gmailのメールを削除する方法、ゴミ箱に捨てる方法、ゴミ箱のメールを削除する方法
についてご紹介します。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Gmail API] JavaでGmail APIを使う
を参照ください。

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。

No 目次
1 メールを削除
1 スコープ
2 実行
3 レスポンスの内容
2 メールを一括削除
1 スコープ
2 実行
3 レスポンスの内容
3 メールをゴミ箱に移動
1 スコープ
2 実行
3 レスポンスの内容
4 メールをゴミ箱から削除
1 スコープ
2 実行
3 レスポンスの内容

1. メールを削除

指定したメールを削除する方法です。
ゴミ箱に捨てるのとは異なり、即時削除になります。

1.1. スコープ

このAPIを実行するには、以下のスコープを指定してください。

GmailScopes.MAIL_GOOGLE_COM

⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。

1.2. 実行

削除したいメッセージIDを指定してメールを削除します。

public static void main(String[] args) throws Exception{
    Gmail gmail = getGmail();
    Gmail.Users users = gmail.users();
    Gmail.Users.Messages messages = users.messages();
    
    Gmail.Users.Messages.Delete delete = messages.delete("メールアドレス","メッセージID");
    
    delete.execute();
}

1.2.1. HTTPリクエスト

DELETE https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/messages/{メッセージID}
が実行されます。

1.2.2. クエリパラメータ

クエリパラメータはありません。

1.2.3. リクエストボディ

リクエストボディはありません。

1.3. レスポンスの内容

レスポンスはありません。
削除に失敗した場合、例外が発生します。

2. メールを一括削除

指定した複数のメールを一括で削除します。
1. メールを削除と同じく、即時削除します。

2.1. スコープ

このAPIを実行するには、以下のスコープを指定してください。

GmailScopes.MAIL_GOOGLE_COM

⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。

2.2. 実行

削除したいメッセージIDを複数指定してメールを削除します。

public static void main(String[] args) throws Exception{
    Gmail gmail = getGmail();
    Gmail.Users users = gmail.users();
    Gmail.Users.Messages messages = users.messages();
    
    BatchDeleteMessagesRequest content = new BatchDeleteMessagesRequest();
    content.setIds(Arrays.asList("削除したいメッセージID"));
    
    Gmail.Users.Messages.BatchDelete batchDelete = messages.batchDelete("メールアドレス",content);
    
    batchDelete.execute();
}

2.2.1. HTTPリクエスト

POST: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/messages/batchDelete
が実行されます。

2.2.2. クエリパラメータ

クエリパラメータはありません。

2.2.3. リクエストボディ

BatchDeleteMessagesRequestのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setIds List<String> 削除するメッセージIDのリスト

2.3. レスポンスの内容

レスポンスはありません。
変更に失敗した場合、例外が発生します。

3. メールをゴミ箱に移動

指定したメールをゴミ箱に移動します。

3.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY

⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。

3.2. 実行

ゴミ箱に移動したいメッセージIDを指定します。

public static void main(String[] args) throws Exception{
    Gmail gmail = getGmail();
    Gmail.Users users = gmail.users();
    Gmail.Users.Messages messages = users.messages();
    
    Gmail.Users.Messages.Trash trash = messages.trash("メールアドレス","メッセージID");
    
    Message res = trash.execute();
    System.out.println(res);
}

3.2.1. HTTPリクエスト

POST: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/messages/{メッセージID}/trash
が実行されます。

3.2.2. クエリパラメータ

クエリパラメータはありません。

3.2.3. リクエストボディ

リクエストボディはありません。

3.3. レスポンスの内容

Message

メソッド 戻り値 説明
getId String メッセージID
getThreadId String メッセージが属するスレッドID
getLabelIds List<String> このメッセージに適用されるラベルのIDのリスト
getSnippet String メッセージテキストの短い部分
getHistoryId String このメッセージを変更した最後の履歴レコードの ID
getInternalDate Long 内部メッセージ作成タイムスタンプ(エポックミリ秒)
getPayload MessagePart メッセージ部分の解析された電子メール構造。
getSizeEstimate Integer メッセージの推定サイズ(バイト単位)
getRaw String RFC2822形式で Base64URLエンコードされた文字列の電子メールメッセージ全体

MessagePart

メソッド 戻り値 説明
getPartId String メッセージ部分ID
getMimeType String メッセージ部分のMIMEタイプ
getFilename String 添付ファイルのファイル名
getHeaders List<MessagePartHeader> メッセージ部分のヘッダーのリスト
getBody MessagePartBody メッセージ部分の本文
getParts List<MessagePart> 子のMIMEメッセージ部分

MessagePartHeader

メソッド 戻り値 説明
getName String セパレータの前のヘッダーの名前
getValue String 区切り文字の後のヘッダーの値

MessagePartBody

メソッド 戻り値 説明
getAttachmentId String 添付ファイルID
getSize Integer メッセージ部分データのバイト数
getData String MIME メッセージ部分の本文データ(base64 url エンコード文字列)

4. メールをゴミ箱から削除

指定したゴミ箱にあるメールをゴミ箱から削除します。

4.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY

⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。

4.2. 実行

削除したいメッセージIDを複数指定してメールを削除します。

public static void main(String[] args) throws Exception{
    Gmail gmail = getGmail();
    Gmail.Users users = gmail.users();
    Gmail.Users.Messages messages = users.messages();
    
    Gmail.Users.Messages.Untrash untrash = messages.untrash("メールアドレス","メッセージID");
    
    Message res = untrash.execute();
    System.out.println(res);
}

4.2.1. HTTPリクエスト

POST: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/messages/{メッセージID}/untrash
が実行されます。

4.2.2. クエリパラメータ

クエリパラメータはありません。

4.2.3. リクエストボディ

リクエストボディはありません。

4.3. レスポンスの内容

Message

3.3. レスポンスの内容(Message)と同じです。



おしまい。。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1