LoginSignup
1
1

[Gmail API] Javaで送信者エイリアスを作成・更新・削除する

Posted at

Gmail API v1(Java)を使用して、
Gmailの送信者エイリアスを作成・更新・削除する方法
についてご紹介します。

送信者エイリアスとは
メールを送信する時、送信者エイリアスからメールを送信しているように見せることができる機能です。
最初に、メール転送を設定してアクティブにしておきます。
Gmailでは、「設定」 -> 「アカウントとインポート」 -> 名前:「他のメールアドレスを追加」
から設定できます。

このAPIは、ドメイン全体の権限を委任されたサービスアカウントを
使用しての発行のみ利用可能です。OAuth 2.0では利用できません。

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

No 目次
1 送信者エイリアスを作成
1 スコープ
2 実行
3 レスポンスの内容
2 送信者エイリアスを上書き
1 スコープ
2 実行
3 レスポンスの内容
3 送信者エイリアスを更新
1 スコープ
2 実行
3 レスポンスの内容
4 送信者エイリアスを削除
1 スコープ
2 実行
3 レスポンスの内容

1. 送信者エイリアスを作成

送信者エイリアスを作成します。

1.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_SHARING

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

1.2.1. HTTPリクエスト

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

1.2.2. クエリパラメータ

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

1.2.3. リクエストボディ

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

メソッド 引数 説明
setSendAsEmail String 送信者エイリアスメールアドレス
作成時のみ指定可能
setDisplayName String エイリアスを使用して送信されるメールの「From:」ヘッダーに表示される名前
setReplyToAddress String エイリアスを使用して送信されるメールの「Reply-To:」ヘッダーに含まれるメールアドレス
setSignature String GmailウェブUIでエイリアスを使用して作成されたメッセージに含まれるオプションのHTML署名
setIsDefault Boolean 新しいメッセージの作成や休暇中の自動返信の送信などの状況で、このアドレスがデフォルトの「From:」アドレスとして選択されるか
setTreatAsAlias Boolean ユーザーのプライマリメールアドレスのエイリアスとして扱うか
setSmtpMsa SmtpMsa エイリアスを使用して送信されるメールの送信リレーとして使用されるオプションのSMTPサービス

SmtpMsa(set)

メソッド 引数 説明
getHost String 【必須】SMTPサービスのホスト名
getPort Integer 【必須】SMTPサービスのポート
getUsername String SMTPサービスでの認証に使用されるユーザー名
getPassword String SMTPサービスでの認証に使用されるパスワード
getSecurityMode SecurityMode(enum) 【必須】SMTPサービスとの通信を保護するために使用されるプロトコル

1.3. レスポンスの内容

SendAs

メソッド 戻り値 説明
getSendAsEmail String 送信者エイリアスメールアドレス
getDisplayName String エイリアスを使用して送信されるメールの「From:」ヘッダーに表示される名前
getReplyToAddress String エイリアスを使用して送信されるメールの「Reply-To:」ヘッダーに含まれるメールアドレス
getSignature String GmailウェブUIでエイリアスを使用して作成されたメッセージに含まれるオプションのHTML署名
getIsPrimary Boolean アカウントへのログインに使用されるプライマリアドレスか
getIsDefault Boolean 新しいメッセージの作成や休暇中の自動返信の送信などの状況で、このアドレスがデフォルトの「From:」アドレスとして選択されるか
getTreatAsAlias Boolean ユーザーのプライマリメールアドレスのエイリアスとして扱うか
getSmtpMsa SmtpMsa エイリアスを使用して送信されるメールの送信リレーとして使用されるオプションのSMTPサービス
getVerificationStatus VerificationStatus(enum) 送信エイリアスとして使用できるかどうかの検証状態

SmtpMsa

メソッド 戻り値 説明
getHost String SMTPサービスのホスト名
getPort Integer SMTPサービスのポート
getSecurityMode SecurityMode(enum) SMTPサービスとの通信を保護するために使用されるプロトコル

VerificationStatus

定義値 内容
verificationStatusUnspecified 未設定
accepted このアドレスは、送信エイリアスとして使用する準備完了
pending 住所は所有者による確認を持っている

SecurityMode

定義値 内容
securityModeUnspecified 未設定
none リモートSMTPサービスとの通信は安全ではない
ssl リモートSMTPサービスとの通信は、SSLを使用して保護
starttls リモートSMTPサービスとの通信は、STARTTLSを使用して保護

2. 送信者エイリアスを上書き

送信者エイリアスを上書きします。

3. 送信者エイリアスを更新と違うところは、
存在する送信者エイリアスを新しい送信者エイリアスに置き換えます。

2.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.GMAIL_SETTINGS_SHARING

⧉[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.SendAs sendAs = settings.sendAs();
    SendAs content = new SendAs();
    Gmail.Users.Settings.SendAs.Update update = sendAs.update("メールアドレス","送信者エイリアスメールアドレス",content);
    
    SendAs res = update.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

PUT: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/sendAs/{送信者エイリアスメールアドレス}
が実行されます。

2.2.2. クエリパラメータ

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

2.2.3. リクエストボディ

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

1.2.3. リクエストボディ(SendAs)と同じです。

2.3. レスポンスの内容

SendAs

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

3. 送信者エイリアスを更新

送信者エイリアスを更新します。

2. 送信者エイリアスを上書きとの違いは、
存在する送信者エイリアスの設定内容を更新します。

3.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_BASIC
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();
    
    Gmail.Users.Settings.SendAs sendAs = settings.sendAs();
    SendAs content = new SendAs();
    Gmail.Users.Settings.SendAs.Patch patch = sendAs.patch("メールアドレス","送信者エイリアスメールアドレス",content);
    
    SendAs res = patch.execute();
    System.out.println(res);
}

3.2.1. HTTPリクエスト

PATCH: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/sendAs/{送信者エイリアスメールアドレス}
が実行されます。

3.2.2. クエリパラメータ

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

3.2.3. リクエストボディ

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

1.2.3. リクエストボディ(SendAs)と同じです。

3.3. レスポンスの内容

SendAs

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

4. 送信者エイリアスを削除

送信者エイリアスを削除します。

4.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_SHARING

⧉[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.SendAs sendAs = settings.sendAs();
    Gmail.Users.Settings.SendAs.Delete delete = sendAs.delete("メールアドレス","送信者エイリアスメールアドレス");
    
    delete.execute();
}

4.2.1. HTTPリクエスト

DELETE: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/sendAs/{送信者エイリアスメールアドレス}
が実行されます。

4.2.2. クエリパラメータ

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

4.2.3. リクエストボディ

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

4.3. レスポンスの内容

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



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