はじめに
プリザンターのアップデートにより、Ver.1.5.1.0からついにメール送信(SMTP)の認証方式として OAuth 2.0 がサポートされました! 昨今のセキュリティ要件から、従来の「アプリパスワード」を利用した方式は避けたいというケースも多いのではないでしょうか。
公式マニュアルを覗いてみると、Microsoft 365(Exchange Online)の設定方法は手厚く解説されているのですが、Google Workspace(GWS) の手順については記載がありません。
そこで今回は、Google Workspace環境でプリザンターからOAuth認証を使ってメール送信を行うための具体的な設定手順をまとめてみました。
構成のポイント
Google WorkspaceでSMTP OAuthを行う場合、ユーザーの介在なしでメールを送信するため、サービスアカウント と ドメイン全体の委任(Domain-wide Delegation) の組み合わせが必要になります。
手順は大きく分けて以下の4ステップです。
- Google Cloud プロジェクトの準備
- サービスアカウントとOAuth情報の作成
- Google Workspace 管理コンソールでの権限付与
- プリザンター側の設定(
Mail.json)
1. Google Cloud プロジェクトの準備
まずは Google Cloud Console にアクセスして、土台となるプロジェクトを作成します。
1.1 プロジェクトの作成
- 画面上部のプロジェクト選択から 「新しいプロジェクト」 を作成
- 名前は分かりやすく
Pleasanter-SMTP-Clientなどにしておきましょう
1.2 Gmail API の有効化
- サイドメニューの 「APIとサービス」 > 「ライブラリ」 を選択
1.「Gmail API」 を検索して 「有効にする」 をクリックします
2. 認証情報の設定
ここが少しややこしいところですが、一つずつこなしていきましょう。
2.1 OAuth 同意画面の設定
- 「APIとサービス」 > 「OAuth同意画面」 を選択
- ユーザータイプは 「内部」 を選択して作成します(Google Workspace専用にするため)
- アプリ名やメールアドレスなど、必須項目を埋めて保存します
2.2 サービスアカウントの作成
- 「認証情報」 > 「認証情報を作成」 > 「サービスアカウント」 を選択
- サービスアカウント名(例:
pleasanter-smtp)を入力して作成 - 作成後、詳細画面の 「キー」 タブから 「新しい鍵を作成(JSON)」 を行い、ファイルを保存しておきます
このJSONファイルに含まれるclient_idとprivate_keyは後で使いませんが、管理上大切に保管してください。
2.3 OAuth 2.0 クライアントIDの作成
- 再度 「認証情報」 画面に戻り、 「認証情報を作成」 > 「OAuth クライアント ID」 を選択
- アプリケーションの種類は 「ウェブ アプリケーション」 を選択
- 作成後に表示される 「クライアントID」 と 「クライアントシークレット」 をメモしておきます。これがプリザンターの設定に必要になります
3. ドメイン全体の委任
Google Workspace側の管理画面で、「このサービスアカウントは全ユーザーに代わってメールを操作してもいいですよ」という許可を与えます。
- Google Workspace 管理コンソール にサインイン
- 「セキュリティ」 > 「アクセスとデータ管理」 > 「APIの制御」 を開く
- 「ドメイン全体の委任」 をクリックし、「新しく追加」
- 以下の情報を入力します:
- クライアントID: 先ほど作成した サービスアカウントのクライアントID(※OAuth2.0のIDではないので注意)
- OAuthスコープ: https://mail.google.com/
4. プリザンターの設定
いよいよ大詰めです。Pleasanterサーバー内のApp_Data/Parameters/Mail.jsonを編集します。
Mail.json の設定例
JSON形式で以下のように記述します。
{
"SmtpHost": "smtp.gmail.com",
"SmtpPort": 587,
"SmtpUserName": "sender@your-domain.com",
"SmtpPassword": "",
"SmtpEnableSsl": true,
"SecureSocketOptions": "StartTls",
"UseOAuth": true,
"OAuthClientId": "xxxxxxxxxxxx.apps.googleusercontent.com",
"OAuthClientSecret": "your-client-secret-value",
"OAuthScope": "https://mail.google.com/",
"OAuthGrantType": "client_credentials",
"OAuthTokenEndpoint": "https://oauth2.googleapis.com/token",
"OAuthDefaultExpiresIn": 3600,
"OAuthTokenRefreshBufferTime": 300,
"Encoding": "UTF-8",
"FixedFrom": "sender@your-domain.com",
"SupportFrom": "sender@your-domain.com"
}
| パラメータ名 | 設定値のポイント |
|---|---|
| SmtpUserName | 実際に送信元となるメールアドレス。 |
| UseOAuth |
trueに設定。 |
| OAuthClientId | 手順2.3で作成した「ウェブアプリ」のID。 |
| OAuthClientSecret | 手順2.3で作成したシークレット。 |
| OAuthGrantType |
client_credentialsを指定。 |
5. 動作確認とトラブルシューティング
設定が完了したら、Pleasanterを再起動(IISの再起動など)して、テストメールを送信してみましょう。
よくあるエラーと対策
- "OAuth token acquisition failed"
- クライアントID/シークレットが間違っていませんか?
- OAuthスコープに https://mail.google.com/ が正しく入力されているか確認してください
- "Authentication failed"
- SmtpUserName がドメイン全体の委任で許可したドメイン内のアドレスか確認してください
- 管理コンソールでの「ドメイン全体の委任」の設定が反映されるまで、数分かかる場合があります
おわりに
Google Workspace環境でのOAuth設定は、ドメイン全体の委任など特有のステップがあるため、最初は少し戸惑うかもしれません。 しかし、一度設定してしまえば「アプリパスワード」の管理から解放され、よりセキュアな環境でプリザンターを活用できるようになります。
「M365じゃなくてGoogleなんだよな...」と悩んでいた方の参考になれば幸いです!