QQ 메일 발신 설정 시 메일은 정상 도착하지만 Discourse에서 오류가 발생하며 중복 전송됩니다

제가 처음 따랐던 설치 튜토리얼:

제 설정:

  DISCOURSE_DEVELOPER_EMAILS: 'xxx@gmail.com'

  ## TODO: 메일 서버 구성
  ##       (새 계정 인증, 알림, 다이제스트 등에 사용됨)
  ## 필수: 메일 전송에 사용되는 SMTP 메일 서버의 호스트명
  DISCOURSE_SMTP_ADDRESS: smtp.qq.com
  ## 기본값(25) 이외의 포트를 설정하려면 주석 해제
  DISCOURSE_SMTP_PORT: 587
  ## USER_NAME / PASSWORD는 SMTP 제공자가 인증을 필요로 하는 경우 필수
  ## 경고: SMTP 비밀번호에 '#'가 포함된 경우 오해될 수 있으므로, 문자열 따옴표 안에 넣어야 합니다. 예:
  ##   DISCOURSE_SMTP_PASSWORD: "#pass#ord"
  DISCOURSE_SMTP_USER_NAME: xxx@qq.com
  DISCOURSE_SMTP_PASSWORD: "xxx"
  ## 연결 시 암시적 TLS를 활성화하려면 주석 해제 (포트 465 사용 시에 일반적으로 필요함)
  #DISCOURSE_SMTP_FORCE_TLS: true
  ## HELO/EHLO 도메인을 설정하려면 주석 해제 (제공자가 요구하는 경우에만 설정)
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com
  ## 알림이 발송되는 주소
  DISCOURSE_NOTIFICATION_EMAIL: xxx@qq.com
  ## 서버 인증서 검증을 변경하려면 주석 해제
  #DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: peer # peer|none
  ## 인증 방법을 재정의하려면 주석 해제
  DISCOURSE_SMTP_AUTHENTICATION: login # plain|login|cram_md5

상황 1:

사용자 등록을 시도할 때, Discourse가 메일을 반복적으로 보내는 문제가 발생합니다.


sidekiq에서 재시도 작업을 수동으로 종료해야 했습니다.

상황 2:

내부 테스트 메일을 보내려고 시도했습니다.
전송 버튼을 클릭한 후 오류 메시지가 표시되었습니다.
하지만 메일함을 열어보니 메일은 정상적으로 수신되었습니다.

이 문제를 해결해 주실 분이 계시다면 QQ 메일을 계속 사용하겠습니다. 그렇지 않으면 다른 메일 서비스로 변경해야 할 것 같습니다.

yourforum.com/logs에 오류가 있나요?

귀하의 문제는 我搭建了discourse,激活了账户邮箱,为什么还是每隔一会儿不断发送激活账户信息的邮件??怎么配置解决这个bug - #23 by supermathieDuplicate registration email issue 을 연상시킵니다.

답변 주셔서 감사합니다. 제공해 주신 두 사례는 제 상황과 거의 동일합니다. 관련 내용을 자세히 살펴봤지만, 어떻게 해결해야 할지 여전히 모르겠습니다.

로그에 실제로 오류가 존재합니다.


안녕하세요, 죄송합니다. 실제 오류 메시지를 제공하도록 수정하고 있습니다. 병합되면 여기에 다시 답변드리겠습니다.

다시 인사드립니다. PR이 병합되었습니다. 업데이트된 코드를 적용하신 후에도 여전히 사람이 읽을 수 있는 오류 메시지가 표시되지 않는다면 알려 주세요.

다음은 doctor를 실행한 기록입니다.
https://mathcollapse.20000816.xyz/ZWM4MzAzZjUzZDZjMGU1.txt

업데이트된 에러 로그입니다.

Message (2 copies reported)

SMTP Error Net::SMTPUnknownError with message: 
 response: 


Backtrace

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:218:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:217:in `map'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:217:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:129:in `error'
/var/www/discourse/lib/email/sender.rb:308:in `rescue in send'
/var/www/discourse/lib/email/sender.rb:295:in `send'
/var/www/discourse/lib/tasks/emails.rake:230:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:279:in `block in execute'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:279:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:279:in `execute'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:199:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:188:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:188:in `invoke_task'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:138:in `block (2 levels) in top_level'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:138:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:138:in `block in top_level'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:147:in `run_with_threads'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:132:in `top_level'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:83:in `block in run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:214:in `standard_exception_handling'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:80:in `run'
bin/rake:13:in `<top (required)>'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:59:in `load'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:59:in `kernel_load'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:452:in `exec'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor.rb:538:in `dispatch'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:35:in `dispatch'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:29:in `start'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/exe/bundle:28:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/exe/bundle:20:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'

도움을 주셔서 감사합니다. 하지만 현재까지 QQ 메일 문제를 해결하지 못해 Gmail로 변경할 수밖에 없었습니다. 지금은 완전히 정상적으로 작동하고 있습니다.

QQ 메일은 작동하지 않았습니다. 저도 같은 문제를 겪었는데요, Mailgun을 사용하면 해결됩니다.

아, 죄송합니다. 더 나은 오류 메시지를 제공하지 못한 점 사과드립니다. 그래도 해결이 되었다니 다행이네요. 이 문제를 좀 더 조사하고, 이를 경고하는 문서를 업데이트할 수 있도록 내부적으로 이슈를 등록해 두었습니다. 다만 QQ 메일에서 반복적으로 발생하는 문제인 것 같습니다. 수년간 QQ 메일이 동일한 문제를 일으킨다는 보고가 여러 번 접수되었거든요.

이것은 QQ 메일의 일반적인 문제인 것 같습니다! Discourse 설정 문제가 아닙니다.