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 | 削除済みとしてマークされたメッセージを即座に完全に削除 |
おしまい。。