OAuth 2.0 を利用した SMTP 認証(Gmail / Outlook)
対象バージョン: Movable Type 9.2.0 / 8.8.4 以降
Movable Type 9.2.0 より、メール送信における SMTP 認証として OAuth 2.0 に対応しました。Gmail(Google Workspace)および Outlook(Microsoft 365)の SMTP サーバーを利用する場合に、従来のユーザー名・パスワードによる認証に代わり、OAuth 2.0 による認証を利用できます。
事前準備
OAuth 2.0 を利用するには、Perl モジュール Authen::SASL の v2.18 以上が必要です。また、メールサービスの提供元でクライアント情報(クライアント ID・クライアントシークレット等)を取得する必要があります。
Gmail の場合
Google Cloud Platform でウェブアプリケーション向けのクライアント ID を作成してください。
OAuth クライアントの作成時に、リダイレクト URI を「承認済みのリダイレクト URI」として登録してください。
設定例:
http(s)://Movable Type の CGI パス/mt.cgi?__mode=gmail_oauth2callback
Outlook の場合
Microsoft Entra(旧 Azure Active Directory)でウェブアプリケーション向けのクライアント ID を作成してください。
OAuth クライアントの作成時に、リダイレクト URI を登録してください。
設定例:
http(s)://Movable Type の CGI パス/mt.cgi?__mode=outlook_oauth2callback
mt-config.cgi の設定
OAuth 2.0 による SMTP 認証を利用する場合は、mt-config.cgi で MailTransfer と MailSMTPOAuthProvider を指定します。
Gmail の場合の設定例
MailTransfer smtp_oauth
MailSMTPOAuthProvider gmail
Outlook の場合の設定例
MailTransfer smtp_oauth
MailSMTPOAuthProvider outlook
※OAuth 2.0 認証を使用する場合、SMTPServer 、SMTPUser 、 SMTPPassword の指定は不要です。認証に必要な情報は管理画面から設定します。
管理画面での設定
OAuth 2.0 に関する設定は、管理画面のシステムスコープで行います。
[システム] > [設定] > [Web サービス] の画面に、「Gmail (SMTP OAuth)」および「Outlook (SMTP OAuth)」のセクションが表示されます。
Gmail (SMTP OAuth)
| 項目 | 説明 |
|---|---|
| リダイレクト URI | OAuth 認証のコールバック先 URL です。Google Cloud Platform のクライアント設定で、この URI を「承認済みのリダイレクト URI」として登録してください。 |
| クライアント ID | Google Cloud Platform で取得したクライアント ID を入力します。 |
| クライアントシークレット | Google Cloud Platform で取得したクライアントシークレットを入力します。 |
| 定期更新 | 「トークンを定期更新する」にチェックを入れると、スケジュールタスクによりトークンを自動的にリフレッシュします。Gmail のリフレッシュトークンには有効期限があるため、有効にすることを推奨します。 |
| トークンを取得する | クライアント ID とクライアントシークレットを入力した後、このボタンをクリックすると Google の認証画面が表示されます。認証を完了すると、アクセストークンが取得されます。 |
Outlook (SMTP OAuth)
| 項目 | 説明 |
|---|---|
| リダイレクト URI | OAuth 認証のコールバック先 URL です。Microsoft Entra のアプリケーション設定で、この URI をリダイレクト URI として登録してください。 |
| テナント ID | Microsoft Entra のテナント ID を入力します。 |
| クライアント ID | Microsoft Entra で取得したクライアント(アプリケーション)ID を入力します。 |
| クライアントシークレット | Microsoft Entra で取得したクライアントシークレットを入力します。 |
| 定期更新 | 「トークンを定期更新する」にチェックを入れると、スケジュールタスクによりトークンを自動的にリフレッシュします。 |
| トークンを取得する | クライアント情報を入力した後、このボタンをクリックすると Microsoft の認証画面が表示されます。認証を完了すると、アクセストークンが取得されます。 |
設定手順
- mt-config.cgi に SMTP サーバーの基本設定を記述します(上記「mt-config.cgi の設定」を参照)。
- 管理画面の [システム] > [設定] > [Web サービス] を開きます。
- 利用するメールサービス(Gmail または Outlook)のセクションに、事前準備で取得したクライアント情報を入力します。
- [変更を保存] をクリックして設定を保存します。
- [トークンを取得する] ボタンをクリックし、メールサービスの認証画面で認証を行います。
- 認証が完了すると、元の画面にメッセージが表示されます。
注意事項
- OAuth 2.0 の設定はシステムスコープでのみ使用可能です。サイトごとの個別設定はできません。
- トークンの定期更新を有効にする場合は、スケジュールタスク が正しく設定されている必要があります。失効した場合は、再度 [トークンを取得する] をクリックして認証をやり直してください。
- クライアント ID やクライアントシークレットを変更して保存する場合、既存のトークンは無効になります。変更後は再度トークンの取得が必要です。
