LoginSignup
1
1

[Gmail API] Javaでユーザー設定(言語、不在通知、自動転送、POP、IMAP)を取得する

Last updated at Posted at 2024-03-18

Gmail API v1(Java)を使用して、
Gmailのユーザーの設定情報を取得する方法
についてご紹介します。

取得できるユーザーの設定情報は下記の5つになります。
・言語の設定
・不在通知の設定
・自動転送の設定
・POPの設定
・IMAPの設定

・言語の設定
Gmailメニュー 「設定」 -> 「全般」 -> 「言語」
で設定できる内容です。

・不在通知の設定
Gmailメニュー 「設定」 -> 「全般」 -> 「不在通知」
で設定できる内容です。

・自動転送の設定
Gmailメニュー 「設定」 -> 「メール転送とPOP/IMAP」 -> 「転送」
で設定できる内容です。

・POPの設定
Gmailメニュー 「設定」 -> 「メール転送とPOP/IMAP」 -> 「POPダウンロード」
で設定できる内容です。

・IMAPの設定
Gmailメニュー 「設定」 -> 「メール転送とPOP/IMAP」 -> 「IAPアクセス」
で設定できる内容です。

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 POP設定を取得
1 スコープ
2 実行
3 レスポンスの内容
5 IMAP設定を取得
1 スコープ
2 実行
3 レスポンスの内容

1. 言語設定を取得

指定したユーザーの言語設定を取得します。

1.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY

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

1.2. 実行

public static void main(String[] args) throws Exception{
    Gmail gmail = getGmail();
    Gmail.Users users = gmail.users();
    
    Gmail.Users.Settings settings = users.settings();
    Gmail.Users.Settings.GetLanguage language = settings.getLanguage("メールアドレス");
    
    LanguageSettings res = language.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

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

1.2.2. クエリパラメータ

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

1.3. レスポンスの内容

LanguageSettings

メソッド 戻り値 説明
getDisplayLanguage String 言語コード(RFC3066)

2. 不在通知設定を取得

指定したユーザーの不在通知設定を取得します。

不在通知設定とは、設定を行うとすぐには返信できないことを
自動的に相手に通知する機能です。

2.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY

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

2.2. 実行

public static void main(String[] args) throws Exception{
    Gmail gmail = getGmail();
    Gmail.Users users = gmail.users();
    
    Gmail.Users.Settings settings = users.settings();
    Gmail.Users.Settings.GetVacation vacation = settings.getVacation("メールアドレス");
    
    VacationSettings res = vacation.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

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

2.2.2. クエリパラメータ

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

2.3. レスポンスの内容

VacationSettings

メソッド 戻り値 説明
getEnableAutoReply Boolean Gmail がメッセージに自動的に返信するか
getResponseSubject String 不在中の返信の件名の前に追加するオプションのテキスト
getResponseBodyPlainText String プレーンテキスト形式の応答本文
responseBodyHtmlが設定されていれば、responseBodyHtmlが優先
getResponseBodyHtml String HTML形式の応答本文
responseBodyPlainTextが設定されていれば、こちらが優先
getRestrictToContacts Boolean ユーザーの連絡先リストにない受信者に応答を送信するか
getRestrictToDomain Boolean ユーザーのドメイン外の受信者に応答を送信するか
getStartTime Long 自動応答を送信するためのオプションの開始時間(エポックミリ秒)
getEndTime Long 自動応答の送信のオプションの終了時刻(エポックミリ秒)

3. 自動転送設定を取得

指定したユーザーの自動転送設定を取得します。

3.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY

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

3.2. 実行

public static void main(String[] args) throws Exception{
    Gmail gmail = getGmail();
    Gmail.Users users = gmail.users();
    
    Gmail.Users.Settings settings = users.settings();
    Gmail.Users.Settings.GetAutoForwarding autoForwarding = settings.getAutoForwarding("メールアドレス");
    
    AutoForwarding res = autoForwarding.execute();
    System.out.println(res);
}

3.2.1. HTTPリクエスト

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

3.2.2. クエリパラメータ

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

3.3. レスポンスの内容

AutoForwarding

メソッド 戻り値 説明
getEnabled Boolean すべての受信メールを別のアドレスに自動的に転送するか
getEmailAddress String すべての受信メッセージが転送される電子メールアドレス
getDisposition Disposition(enum) メッセージが転送された後に行う処理

Disposition

定義値 内容
dispositionUnspecified 未指定
leaveInInbox INBOXにメッセージを残す
archive メッセージをアーカイブする
trash メッセージをゴミ箱に移動する
markRead INBOXにメッセージを残して既読マークをつける

4. POP設定を取得

指定したユーザーのPOP設定を取得します。

POPとは、ユーザーが利用している電子メールサービスに問い合わせ、
そこからメールや添付ファイルの全てをダウンロードする仕組みです。

4.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY

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

4.2. 実行

public static void main(String[] args) throws Exception{
    Gmail gmail = getGmail();
    Gmail.Users users = gmail.users();
    
    Gmail.Users.Settings settings = users.settings();
    Gmail.Users.Settings.GetPop pop = settings.getPop("メールアドレス");
    
    PopSettings res = pop.execute();
    System.out.println(res);
}

4.2.1. HTTPリクエスト

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

4.2.2. クエリパラメータ

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

4.3. レスポンスの内容

PopSettings

メソッド 戻り値 説明
getAccessWindow AccessWindow(enum) POP経由でアクセスできるメッセージの範囲
getDisposition Disposition(enum) POP経由でメッセージが取得された後に、メッセージに対して実行されるアクション

AccessWindow

定義値 内容
accessWindowUnspecified 未指定
disabled POP経由でアクセスできるメッセージがない
fromNowOn 過去のある時点以降に受信されたフェッチされていないメッセージが POP経由でアクセス可能
allMail フェッチされていないすべてのメッセージにPOP経由でアクセス可能

5. IMAP設定を取得

指定したユーザーのIMAP設定を取得します。

IMAPとは、メールや添付ファイルがPCやスマホなどの端末には保存されず、
メールサーバー上に保存される仕組みです。
そのため、複数の異なる端末でメールや添付ファイルを確認することができます。

5.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY

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

5.2. 実行

public static void main(String[] args) throws Exception{
    Gmail gmail = getGmail();
    Gmail.Users users = gmail.users();
    
    Gmail.Users.Settings settings = users.settings();
    Gmail.Users.Settings.GetImap imap = settings.getImap("メールアドレス");
    
    ImapSettings res = imap.execute();
    System.out.println(res);
}

5.2.1. HTTPリクエスト

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

5.2.2. クエリパラメータ

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

5.3. レスポンスの内容

ImapSettings

メソッド 戻り値 説明
getEnabled Boolean IMAPが有効になっているか
getAutoExpunge Boolean メッセージをすぐに削除するか
getExpungeBehavior ExpungeBehavior(enum) メッセージに対して実行されるアクション
getMaxFolderSize Integer IMAPフォルダーに含めることができるメッセージの数に対するオプションの制限数
有効な値は0(制限なし)、1000、2000、5000、10000

ExpungeBehavior

定義値 内容
expungeBehaviorUnspecified 未指定
archive 削除済みとしてマークされたメッセージをアーカイブ
trash 削除済みとしてマークされたメッセージをゴミ箱に移動
deleteForever 削除済みとしてマークされたメッセージを即座に完全に削除


おしまい。。
1
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
1
1