OAuth 2.0 を利用した SMTP 認証(Gmail / Outlook)
対象バージョン: Movable Type 9.2.0 / 8.8.4 以降
Movable Type 8.8.4 より、メール送信における SMTP 認証として OAuth 2.0 に対応しました。Gmail(Google Workspace)および Outlook(Microsoft 365)の SMTP サーバーを利用する場合に、従来のユーザー名・パスワードによる認証に代わり、OAuth 2.0 による認証を利用できます。
事前準備
OAuth 2.0 を利用するには、メールサービスの提供元でクライアント情報(クライアント 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
Outlook の場合は、テナント ID も必要になります。
mt-config.cgi の設定
OAuth 2.0 による SMTP 認証を利用する場合も、基本的な SMTP 設定は従来と同様に mt-config.cgi に記述します。 詳細は SMTP によるメール送信設定 を参照してください。
Gmail の場合の設定例
MailTransfer smtp
SMTPServer smtp.gmail.com
SMTPPort 587
SMTPAuth starttls
Outlook の場合の設定例
MailTransfer smtp
SMTPServer smtp.office365.com
SMTPPort 587
SMTPAuth starttls
※OAuth 2.0 認証を使用する場合、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 やクライアントシークレットを変更して保存する場合、既存のトークンは無効になります。変更後は再度トークンの取得が必要です。