나도 비슷한 문제를 겪고 있습니다. 어제 새 Discourse 인스턴스에서 이메일 전송을 약 3시간 동안 디버깅했지만 아무런 성과가 없었습니다. 포트 587에서 STARTTLS를 사용하여 Fastmail을 통해 이메일을 보내려고 하고 있습니다. 다른 서비스들은 동일한 자격 증명으로 정상 작동합니다.
아래 설정을 사용할 때 “Must issue a STARTTLS command first” 오류 응답을 받지 않습니다:
root@app:/var/www/discourse# rake emails:test redacted@example.com
Testing sending to using smtp.fastmail.com:587, username:myuser@fastmail.fm with plain auth.
======================================== ERROR ========================================
UNEXPECTED ERROR
500 5.5.1 Invalid command
====================================== SOLUTION =======================================
This is not a common error. No recommended solution exists!
Please report the exact error message above to https://meta.discourse.org/
(And a solution, if you find one!)
=======================================================================================
tcpdump를 살펴보면, 다시 한번 STARTTLS 암호화 없이 AUTH PLAIN 자격 증명을 평문으로 전송하는 것을 확인할 수 있습니다.
네, 해당 페이지를 확인해 보았습니다.
그러나 tcpdump를 기준으로 볼 때, app.yml에서 설정이 활성화되어 있음에도 STARTTLS가 사용되지 않는 것이 진단 도구의 버그로 보입니다. (Discourse 애플리케이션 자체는 실제로 STARTTLS를 사용합니다. 많은 이메일 제공자가 비암호화 이메일 전송도 허용하기 때문에, 이 문제는 누군가가 진단 도구를 사용하고 SMTP를 통한 비암호화 전송을 허용하지 않는 제공자를 사용하는 경우에만 발생한다고 가정합니다.)
아. 그 rake 태스크가 discourse-doctor가 호출하는 것과 같은 것인 것 같습니다. 죄송합니다.
어떤 분이 그 rake 태스크가 실제 프로세스와 더 유사하도록 만들거나, 적어도 무엇이 문제인지 파악하려는 시도가 다소 어설프더라도 포기하지 않도록 살펴봐 주시면 좋겠습니다. 좋은 첫 단계는 "음, XXX가 고장 난 것 같지만, 일단 시도해 보겠습니다…"라고 말하는 것일 것입니다.