메일 문제로 머리가 아득해요

몇 일 동안 이것을 이것저것 만져보고 있는데, 메일이 작동하지 않는 이유를 도무지 모르겠어요. 도메인은 Namecheap에 등록되어 있고 Cloudflare로 지정한 후 Digital Ocean에 Discourse를 설치했으며, Sendgrid를 구현하려고 하고 있습니다.
컨테이너 폴더는 다음과 같이 설정되어 있습니다

  DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: apikey
  DISCOURSE_SMTP_PASSWORD: "Q0Ou956E" (비밀번호 대부분을 제거함)
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (선택 사항, 기본값 true)

  ## Lets Encrypt 템플릿을 추가했다면, 무료 SSL 인증서를 받으려면 아래 주석을 해제하세요
  LETSENCRYPT_ACCOUNT_EMAIL: matthew@virtusventus.com

Discourse Doctor를 실행해 보니 연결에 성공한다고 표시합니다. 그러나 Sendgrid 리포트에는 메시지가 표시되지 않고, 이메일도 전혀 수신되지 않습니다. 여러 줄을 검색하고 수정해 보았지만 아무것도 해결되지 않습니다.

무엇을 놓치고 있는 걸까요?

그것은 거의 확실하게 Sendgrid에 전달되었다는 뜻입니다.

제 추측으로는 잘못된 Sendgrid 계정에 로그인되어 있다는 것입니다. mail-tester.com을 사용해 메시지가 도착하는지 확인해 보실 수 있습니다.

다른 가능성으로는 잘못 구성된 발신자 주소가 있을 수 있습니다. Discourse 호스트 이름과 동일한 도메인에서 메일을 보내고 계신가요? 그렇지 않다면, 알림 이메일 주소를 변경하셨나요?

개발자 이메일에 사용하는 도메인과 Discourse에 사용하는 도메인이 다릅니다… 그리고 네, 컨테이너 앱에서 알림 주소를 개발자 이메일에 사용하는 이메일 주소와 일치하도록 변경했습니다.

변경 후 다시 빌드(rebuild)를 했나요?

저는 SendGrid에 대해 전문가라고 할 수는 없지만, 개발용 이메일(developer email)이 샌드박스(sandbox)와 유사한 것을 의미한다면, 샌드박스에서는 인증된 주소로만 이메일을 보낼 수 있기 때문에 그런 문제가 발생할 수 있습니다.

하지만 그게 아니라면, 저는 먼저 SendGrid 계정에서 로그를 확인하여 SendGrid가 어떤 이유로 이메일을 거부하고 있는지 확인해 볼 것입니다.

네, 재구축이 완료되었습니다… '개발자 이메일’은 Discourse에서 설정되며, 설정 화면에서는 그렇게 표시합니다.

Discourse Doctor의 출력 결과는 다음과 같습니다. 하지만 SendGrid는 이메일을 받지 못합니다.


==================== MAIL TEST ====================

Robust한 테스트를 위해 http://www.mail-tester.com/에서 주소를 가져오세요.

또는 단순히 자신에게 테스트 메시지를 보내세요.

메일 테스트용 이메일 주소? ('n' 입력 시 건너뜀) [matthew@Virtusventurs.com]: 

matthew@Virtusventurs.com(으)로 메일 전송 중... 

smtp.sendgrid.net:2525를 사용하여 matthew@Virtusventurs.com(으)로 전송 테스트 중.

SMTP 서버 연결 성공.

matthew@Virtusventurs.com(으)로 전송 중... 

메일이 SMTP 서버에 의해 수락됨.

이 줄은 메일이 sendgrid에 도달했다는 것을 시사하므로, 메일이 전달되지 않는 이유를 확인하기 위해 해당 업체에 문의해야 합니다.

모두 감사합니다… 문제를 해결했어요. SendGrid 쪽에서 발생한 문제였어요.