LoginSignup
1
1

[Gmail API] Javaで送信元エイリアスのS/MIME構成を設定・削除する

Posted at

Gmail API v1(Java)を使用して、
送信元エイリアスのS/MIME構成を設定・削除する方法
についてご紹介します。

S/MIMEとは
電子証明書を用いたメールのなりすましや改ざん、盗聴などを防ぐための仕組みです。
セキュリティを高めるために、メールの暗号化と電子署名を行います。

このAPIは、無料版のアカウントでは使用できず、利用するには
有料版の「Google Workplace」でのアカウントが必要になります。

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

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

No 目次
1 デフォルトのS/MIME構成を設定
1 スコープ
2 実行
3 レスポンスの内容
2 S/MIME構成を設定
1 スコープ
2 実行
3 レスポンスの内容
3 S/MIME構成を削除
1 スコープ
2 実行
3 レスポンスの内容

1. デフォルトのS/MIME構成を設定

送信元エイリアスのデフォルトのS/MIME構成を設定します。

1.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY
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();
    Gmail.Users.Settings.SendAs.SmimeInfo smimeInfo = sendAs.smimeInfo();
    Gmail.Users.Settings.SendAs.SmimeInfo.SetDefault setDefault = smimeInfo.setDefault("メールアドレス", "送信者メールアドレス","SmimeInfoのID");
    
     setDefault.execute();
}

1.2.1. HTTPリクエスト

POST: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/sendAs/{送信者メールアドレス}/smimeInfo/{SmimeInfoのID}/setDefault
が実行されます。

1.2.2. クエリパラメータ

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

1.3. レスポンスの内容

レスポンスはありません。
失敗した場合は例外が出力されます。

2. S/MIME構成を設定

送信元エイリアスのS/MIME構成を設定(アップロード)します。

2.1. スコープ

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

GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY
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();
    Gmail.Users.Settings.SendAs.SmimeInfo smimeInfo = sendAs.smimeInfo();
    SmimeInfo content = new SmimeInfo();
    Gmail.Users.Settings.SendAs.SmimeInfo.Insert insert = smimeInfo.insert("メールアドレス", "送信者メールアドレス",content);
    
    SmimeInfo res = insert.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

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

2.2.2. クエリパラメータ

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

2.2.3. リクエストボディ

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

メソッド 引数 説明
setIssuerCn String S/MIME証明書の発行元の共通名
setIsDefault Boolean この設定がユーザーの送信元アドレスのデフォルトであるか
setExpiration Long 証明書の有効期限が切れた時期(エポックミリ秒)
setEncryptedKeyPassword String 暗号化された鍵のパスワード
setPkcs12 String 【必須】1つの秘密鍵/公開鍵ペアと証明書チェーンを含むPKCS12形式

2.3. レスポンスの内容

SmimeInfo

メソッド 戻り値 説明
getId String SmimeInfoのID
getIssuerCn String S/MIME証明書の発行元の共通名
getIsDefault Boolean この設定がユーザーの送信元アドレスのデフォルトであるか
getExpiration Long 証明書の有効期限が切れた時期(エポックミリ秒)
getEncryptedKeyPassword String 暗号化された鍵のパスワード
getPem String PEM 形式のX509で連結された証明書文字列
getPkcs12 String 1つの秘密鍵/公開鍵ペアと証明書チェーンを含むPKCS12形式

3. S/MIME構成を削除

指定した送信元エイリアスのS/MIME構成の設定を削除します。

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();
    Gmail.Users.Settings.SendAs.SmimeInfo smimeInfo = sendAs.smimeInfo();
    Gmail.Users.Settings.SendAs.SmimeInfo.Delete delete = smimeInfo.delete("メールアドレス", "送信元メールアドレス", "SmimeInfoのID");
    
    delete.execute();
}

3.2.1. HTTPリクエスト

DELETE: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/sendAs/{送信元メールアドレス}/smimeInfo/{SmimeInfoのID}
が実行されます。

3.2.2. クエリパラメータ

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

3.2.2. リクエストボディ

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

3.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