Office 365에서 기본 인증 비활성화

현재 o365에서 기본 인증(Basic Auth)은 사실상 종료된 상태이며* (이번 주에 IT 부서가 모든 계정에서 이를 비활성화했다는 사실을 알게 되면서, 제 경우에도 이미 종료되었습니다) 이메일 전송을 위한 다른 인증 방식을 지원할 계획이 있는지 궁금합니다.

AWS/SES/Sendgrid 등을 설정할 수 있다는 점은 알고 있지만, 다른 프로젝트에서의 경험상 이는 큰 번거로움을 야기하며, 결국 대부분의 트래픽이 내부 통신임에도 불구하고 메시지가 스팸으로 분류되는 문제를 일으키는 경우가 많습니다.

과거 또는 현재 o365 SMTP 계정을 사용하고 있는, 주로 MS 기반 조직을 위한 권장되는 방법이 있는지 알고 싶습니다.

ActionMailer은 Microsoft가 요구하는 XOAUTH2를 지원하지 않습니다.

생각할 수 있는 유일한 방법은 내부 SMTP 서버를 실행하고 해당 이메일을 O365로 전달하여 최종 전송을 하는 것입니다.

수정: SMTP AUTH 관련 부분을 잘못 읽었습니다.

OAuth2로 전환할 필요가 없는 것 같습니다.

2022년 10월 1일에 Basic 인증이 영구적으로 비활성화되더라도 SMTP AUTH는 계속 사용할 수 있습니다.

따라서 app.yml에 추가 환경 변수를 추가하여 SMTP Auth로 변경할 수 있어야 합니다.

DISCOURSE_SMTP_AUTHENTICATION: cram_md5

이와 함께 SMTP 비밀번호의 MD5 해시를 DISCOURSE_SMTP_PASSWORD 설정 값으로 사용해야 할 것입니다. 이러한 변경 사항을 적용한 후 Docker 컨테이너를 다시 빌드하고 테스트해 보세요.

이론적으로는 사용 가능하지만, “사용하지 않는” 테넌트에 대해서는 비활성화되어 있습니다. 실무적으로는 IT 부서가 이를 허용하는 새로운 정책을 수동으로 지정해야 한다는 뜻입니다. 우리에게는 시작조차 하기 어려울 것 같지만, 몇 가지 요청을 해볼 계획입니다. 참고로, 현재 SMTP 서버에서 기본적으로 반환되는 응답은 다음과 같습니다:

EHLO
250-XXX.outlook.office365.com Hello [178.XXX.XXX.XXX]
250-SIZE 157286400
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 SMTPUTF8

참고로 말씀드리면… 이는 제 기관에서 0365용으로 적용한 것으로 보이는 MS 권장 테넌트 설정과 확실히 호환되지 않습니다.

Discourse가 메일 발송에 OATH를 지원하지 않거나/지원할 수 없는 것은 우리에게 정말 큰 불편함입니다. AWS를 통해 발송을 설정해 두었지만, 메일 전달에 여러 문제가 발생하고 있으며, 기존 메일 제공업체를 사용하여 간단하게 해결할 수 있다면 좋겠습니다. 받은 편지함 접근도 마찬가지입니다.

SMTP 서버를 실행하고 전달하는 방식은 상당한 추가 구성이 없다면 대부분의 사용자에게 많은 메일 전달성 문제를 일으킬 것입니다.

이 지엠(gem)은 필요한 기능을 제공하며 비교적 잘 지원되고 있습니다(MIT 라이선스):