Microsoft Graph 메일러 설정

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

전제조건:

  • Microsoft Graph API를 사용하여 메일을 보내려면 먼저
    애플리케이션을 생성하세요
    Azure Active Directory에서 Mail.Send
    애플리케이션 권한을 추가해야 합니다.
  • 애플리케이션 권한을 앱 전용 액세스로 설정하세요. 권한이 위임됨으로 설정되어 있지 않은지 확인하세요.

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 값을 사용하도록 허용하지 않기 때문에 발생할 수 있습니다.
인증하는 계정의 이메일 주소로 값을 설정해야 합니다.

Tail logs

문제를 해결하기 위해 tail logs 명령어를 사용하여 GitLab 로그 업데이트를 실시간으로 확인하세요:

# 애플리케이션의 모든 로그를 tail 합니다.
sudo gitlab-ctl tail

# 애플리케이션 하위 디렉터리의 로그를 tail 합니다.
sudo gitlab-ctl tail gitlab-rails

# 애플리케이션의 개별 파일에 대한 로그를 tail 합니다.
sudo gitlab-ctl tail nginx/gitlab_error.log

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