LoginSignup
1
1

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

Posted at

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

⧉[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();
    LanguageSettings content = new LanguageSettings();
    content.setDisplayLanguage("ja");
    Gmail.Users.Settings.UpdateLanguage updateLanguage = settings.updateLanguage("メールアドレス",content);
    
    LanguageSettings res = updateLanguage.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

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

1.2.2. クエリパラメータ

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

1.2.3. リクエストボディ

LanguageSettingsのsetメソッドにより、リクエストボディを設定できます。

メソッド 引数 説明
setDisplayLanguage String 言語コード(RFC3066)

1.3. レスポンスの内容

LanguageSettings

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

2. 不在通知を設定

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

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

2.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_BASIC

⧉[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();
    VacationSettings content = new VacationSettings();

    Gmail.Users.Settings.UpdateVacation updateVacation = settings.updateVacation("メールアドレス",content);
    
    VacationSettings res = updateVacation.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

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

2.2.2. クエリパラメータ

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

2.2.3. リクエストボディ

VacationSettingsのsetメソッドにより、リクエストボディを設定できます。

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

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_SHARING

⧉[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();
    AutoForwarding content = new AutoForwarding();
    Gmail.Users.Settings.UpdateAutoForwarding updateAutoForwarding = settings.updateAutoForwarding("メールアドレス",content);
    
    AutoForwarding res = updateAutoForwarding.execute();
    System.out.println(res);
}

3.2.1. HTTPリクエスト

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

3.2.2. クエリパラメータ

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

3.2.3. リクエストボディ

AutoForwardingのsetメソッドにより、リクエストボディを設定できます。

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

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

⧉[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();
    PopSettings content = new PopSettings();
    Gmail.Users.Settings.UpdatePop pop = settings.updatePop("メールアドレス",content);
    
    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.2.3. リクエストボディ

PopSettingsのsetメソッドにより、リクエストボディを設定できます。

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

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

⧉[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();
    ImapSettings content = new ImapSettings();
    Gmail.Users.Settings.UpdateImap updateImap = settings.updateImap("メールアドレス",content);
    
    ImapSettings res = updateImap.execute();
    System.out.println(res);
}

5.2.1. HTTPリクエスト

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

5.2.2. クエリパラメータ

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

5.2.3. リクエストボディ

ImapSettingsのsetメソッドにより、リクエストボディを設定できます。

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

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