Microsoft Graph Mailerの設定

GitLab 15.5 で導入されました

前提条件:

  • Microsoft Graph API を使用してメールを送信するには、まず Azure Active Directory でアプリケーションを作成し、Mail.Send アプリケーション権限を追加する必要があります。
  • アプリケーション権限をアプリ専用アクセスに設定します。権限が [Delegated] に設定されていないことを確認します。

OAuth 2.0 クライアント認証フローを使用してMicrosoft Graph APIを使用してアプリケーションメールを送信する場合は、次の設定情報を/etc/gitlab/gitlab.rb に追加し、gitlab-ctl reconfigureを実行してください。

# The originating email address for outgoing mail
gitlab_rails['gitlab_email_from'] = '<YOUR_ACCOUNT_EMAIL>'

# The reply-to email address
gitlab_rails['gitlab_email_reply_to'] = '<YOUR_ACCOUNT_EMAIL>'

gitlab_rails['microsoft_graph_mailer_enabled'] = true

# The unique identifier for the user. To use Microsoft Graph on behalf of the user.
gitlab_rails['microsoft_graph_mailer_user_id'] = "<YOUR_USER_ID>"

# The directory tenant the application plans to operate against, in GUID or domain-name format.
gitlab_rails['microsoft_graph_mailer_tenant'] = "<YOUR_TENANT_ID>"

# The application ID that's assigned to your app. You can find this information in the portal where you registered your app.
gitlab_rails['microsoft_graph_mailer_client_id'] = "<YOUR_CLIENT_ID>"

# The client secret that you generated for your app in the app registration portal.
gitlab_rails['microsoft_graph_mailer_client_secret'] = "<YOUR_CLIENT_SECRET_ID>"

gitlab_rails['microsoft_graph_mailer_azure_ad_endpoint'] = "https://login.microsoftonline.com"

gitlab_rails['microsoft_graph_mailer_graph_endpoint'] = "https://graph.microsoft.com"

トラブルシューティング

ErrorSendAsDenied

エラーメッセージは以下の通りです:

"ErrorSendAsDenied","message":"The user account which was used to submit this request does not have the right to send mail on behalf of the specified sending account., Cannot submit message."

このエラーを解決するには:

  1. アプリケーションの権限をレビューして、API権限が正しいことを確認してください。

  2. 以下のフィールドに、使用しているアカウントのメールアドレスを設定します:

    • gitlab_rails['gitlab_email_from'].
    • gitlab_rails['gitlab_email_reply_to'].

権限以外にも、このエラーはサーバがデフォルトのgitlab_email_from の値を使用することを許可しないために発生することがあります。認証するアカウントのメールアドレスを設定してください。

Tail logs

トラブルシューティングのために、tail logs コマンドを使って GitLab のログ更新をライブで見ることができます:

# Tail all logs for the application
sudo gitlab-ctl tail

# Tail logs for an application sub-directory
sudo gitlab-ctl tail gitlab-rails

# Tail logs for an individual file in the application
sudo gitlab-ctl tail nginx/gitlab_error.log

これらのコマンドを停止するには、Control+Cを押してください。