Microsoft Graph Mailer 설정
Tier: Free, Premium, Ultimate
Offering: Self-managed
- GitLab 15.5에서 소개되었습니다.
전제 조건:
- 메일을 보내기 위해 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":"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."
이 오류를 해결하려면:
- 애플리케이션 권한을 확인하여 API 권한이 올바른지 확인하세요.
- 다음 필드를 사용하는 계정의 이메일 주소로 설정하세요:
-
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를 누르세요.