Microsoft Graph Mailer 설정

Tier: Free, Premium, Ultimate Offering: Self-Managed

사전 요구 사항:

  • 메일을 보내려면 먼저 Azure Active Directory에서 애플리케이션을 만들고 Mail.Send 애플리케이션 권한을 추가해야 합니다.
  • 애플리케이션 권한을 App-only access로 설정하세요. 권한이 Delegated로 설정되지 않았는지 확인하세요.

Microsoft Graph API를 사용하여 OAuth 2.0 클라이언트 자격 증명 흐름으로 애플리케이션 이메일을 보내려면 /etc/gitlab/gitlab.rb에 다음 구성 정보를 추가하고 gitlab-ctl reconfigure를 실행하세요.

# 발신 메일의 발신 이메일 주소
gitlab_rails['gitlab_email_from'] = '<YOUR_ACCOUNT_EMAIL>'

# 회신 이메일 주소
gitlab_rails['gitlab_email_reply_to'] = '<YOUR_ACCOUNT_EMAIL>'

gitlab_rails['microsoft_graph_mailer_enabled'] = true

# 사용자의 고유 식별자. 사용자를 대신하여 Microsoft Graph를 사용하려면
gitlab_rails['microsoft_graph_mailer_user_id'] = "<YOUR_USER_ID>"

# 응용 프로그램이 작동할 디렉터리 테넌트, GUID 또는 도메인 이름 형식으로 지정합니다.
gitlab_rails['microsoft_graph_mailer_tenant'] = "<YOUR_TENANT_ID>"

# 앱에 할당된 응용 프로그램 ID. 이 정보는 앱을 등록한 포털에서 찾을 수 있습니다.
gitlab_rails['microsoft_graph_mailer_client_id'] = "<YOUR_CLIENT_ID>"

# 응용 프로그램 등록 포털에서 앱을 위해 생성한 클라이언트 비밀.
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":"사용된 사용자 계정은 지정된 발신 계정을 대신하여 메일을 보낼 권한이 없습니다. 메시지를 제출할 수 없습니다."

이 오류를 해결하려면 다음을 수행하세요:

  1. 애플리케이션 권한을 검토하여 API 권한이 올바른지 확인하세요.
  2. 다음 필드를 사용 중인 계정의 이메일 주소로 설정하세요:
    • gitlab_rails['gitlab_email_from'].
    • gitlab_rails['gitlab_email_reply_to'].

권한 이외에도 이 오류는 때로는 서버가 기본 gitlab_email_from 값을 사용하는 것을 허용하지 않아 발생할 수 있습니다. 사용 중인 계정의 이메일 주소로 값을 설정해야 합니다.

로그 찾기

문제 해결을 위해 실시간 GitLab 로그 업데이트를 보려면 로그 찾기 명령을 사용하세요:

# 애플리케이션 전체 로그 찾기
sudo gitlab-ctl tail

# 애플리케이션 하위 디렉터리 로그 찾기
sudo gitlab-ctl tail gitlab-rails

# 애플리케이션의 개별 파일 로그 찾기
sudo gitlab-ctl tail nginx/gitlab_error.log

이러한 명령 중지하려면 Control+C를 누르세요.