Zoho 이메일 인증이 Discourse에서 작동하지 않음

AWS Lightsail와 Ubuntu 18.04 LTS를 사용하여 Discourse를 설치했습니다. Zoho 이메일 인증이 Discourse에서 작동하지 않습니다. 같은 환경에서 Mailgun 인증은 정상적으로 작동합니다. 이 문제를 해결하는 데 도움을 주십시오.

서버에서 메일 생성 및 관련 로그를 어떻게 확인할 수 있습니까?

hey @iackrishitech, 메타에 오신 것을 환영합니다.

app.yml 파일에 있는 SMTP 설정을 알려주실 수 있을까요? (비밀번호는 제거해 주세요)

TLS를 사용했을 때와 사용하지 않았을 때 모두 시도해 보았습니다.

이 연결 로그는 어디서 받을 수 있나요?

감사합니다.
Kumar P

이메일 계정에 2단계 인증(2FA)을 활성화해 두셨나요?

그렇다면 discourse용 앱 비밀번호를 생성해 두셨나요?

저는 @iackrishitech의 리드입니다. 여기에 몇 가지 정보를 추가하겠습니다. 우리는 2FA(이중 인증)를 활성화하지 않았습니다. 다른 웹 서버를 위해 별도의 Zoho SMTP 설정(다른 Zoho 메일)을 사용하고 있는데, 그쪽은 지금까지 문제없이 작동하고 있기 때문에 확신합니다.

해당 서버를 설정한 사람은 @iackrishitech이므로 앱 비밀번호 관련 답변은 그분에게 맡기겠습니다.

관리자 패널에서 메일 작업이 실패하는 것을 확인했습니다. Sidekiq를 확인해 보니 다음과 같은 내용이 표시됩니다.

  1. 이 "Wrapped EOFError"가 실패의 원인이 될 수 있을까요? 그렇다면 왜 Mailgun의 경우엔 성공하는데 Zoho에서는 실패하는 것일까요? Discourse에서 제 다른 메일 주소로 메일을 보내야 하는 작업을 시도할 때마다 항상 이 문제가 발생합니다.

아래는 제가 확보할 수 있었던 백트레이스입니다. (신규 사용자로 인해 파일을 첨부할 수 없었습니다)

Message

Job exception: end of file reached


Backtrace

/usr/local/lib/ruby/2.6.0/net/protocol.rb:225:in `rbuf_fill'
/usr/local/lib/ruby/2.6.0/net/protocol.rb:191:in `readuntil'
/usr/local/lib/ruby/2.6.0/net/protocol.rb:201:in `readline'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:950:in `recv_response'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:935:in `block in getok'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:960:in `critical'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:933:in `getok'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:919:in `quit'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:612:in `do_finish'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:521:in `ensure in start'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:521:in `start'
mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:109:in `start_smtp_session'
mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'
mail-2.7.1/lib/mail/message.rb:2159:in `do_delivery'
mail-2.7.1/lib/mail/message.rb:260:in `block in deliver'
actionmailer-6.0.3.3/lib/action_mailer/base.rb:589:in `block in deliver_mail'
activesupport-6.0.3.3/lib/active_support/notifications.rb:180:in `block in instrument'
activesupport-6.0.3.3/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-6.0.3.3/lib/active_support/notifications.rb:180:in `instrument'
actionmailer-6.0.3.3/lib/action_mailer/base.rb:587:in `deliver_mail'
mail-2.7.1/lib/mail/message.rb:260:in `deliver'
actionmailer-6.0.3.3/lib/action_mailer/message_delivery.rb:115:in `block in deliver_now'
actionmailer-6.0.3.3/lib/action_mailer/rescuable.rb:17:in `handle_exceptions'
actionmailer-6.0.3.3/lib/action_mailer/message_delivery.rb:114:in `deliver_now'
/var/www/discourse/lib/email/sender.rb:226:in `send'
/var/www/discourse/app/jobs/regular/user_email.rb:61:in `execute'
/var/www/discourse/app/jobs/regular/critical_user_email.rb:15:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
rails_multisite-2.4.0/lib/rails_multisite/connection_management.rb:76:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
sidekiq-6.1.2/lib/sidekiq/processor.rb:196:in `execute_job'
sidekiq-6.1.2/lib/sidekiq/processor.rb:164:in `block (2 levels) in process'
sidekiq-6.1.2/lib/sidekiq/middleware/chain.rb:138:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:138:in `call'
sidekiq-6.1.2/lib/sidekiq/middleware/chain.rb:140:in `block in invoke'
sidekiq-6.1.2/lib/sidekiq/middleware/chain.rb:143:in `invoke'
sidekiq-6.1.2/lib/sidekiq/processor.rb:163:in `block in process'
sidekiq-6.1.2/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.1.2/lib/sidekiq/job_retry.rb:111:in `local'
sidekiq-6.1.2/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.1.2/lib/sidekiq.rb:38:in `block in <module:Sidekiq>'
sidekiq-6.1.2/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.1.2/lib/sidekiq/processor.rb:257:in `stats'
sidekiq-6.1.2/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.1.2/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.1.2/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.1.2/lib/sidekiq/job_retry.rb:78:in `global'
sidekiq-6.1.2/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.1.2/lib/sidekiq/logger.rb:10:in `with'
sidekiq-6.1.2/lib/sidekiq/job_logger.rb:33:in `prepare'
sidekiq-6.1.2/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.1.2/lib/sidekiq/processor.rb:162:in `process'
sidekiq-6.1.2/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.1.2/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.1.2/lib/sidekiq/util.rb:15:in `watchdog'
sidekiq-6.1.2/lib/sidekiq/util.rb:24:in `block in safe_thread'

이 문제는 우리에게 매우 중요한 장애 요인입니다. 도움을 부탁드립니다. (신규 사용자 제한으로 인해 더 많은 스크린샷을 추가할 수 없었습니다. 이 정보가 도움이 되었기를 바랍니다).

답변해 주셔서 감사합니다, Gavin.

이 계정에 2FA가 활성화되어 있지 않습니다. 하지만 해당 계정에 앱 비밀번호를 생성하여 app.yml에 적용한 후 재빌드해 보았습니다. 여전히 이메일을 받지 못하고 있습니다.

정확한 SMTP 인증 관련 로그는 어디서 찾을 수 있나요?
Zoho 메일 인증이 성공적으로 이루어졌는지 어떻게 확인할 수 있나요?

Zoho 지원 팀이 자체 로그를 확인해 줄 수 있다면, 우리가 제공해야 할 정보(로그 등)에는 어떤 것들이 있나요?

감사합니다,
Kumar P

가빈님,

다음과 같은 변경 사항을 적용했습니다.

  1. Zoho 앱 비밀번호를 활성화하고 Discourse의 App.yml 파일에서 사용했습니다.
  2. TLS를 true로 설정하고, 포트는 587로 지정했습니다.
  3. App.yml 파일에서 다음 줄을 활성화하고 인증 이메일을 기재했습니다.

이제 이메일 기능이 정상적으로 작동하고 있습니다.

Zoho의 앱 비밀번호에 대해 알려주셔서 정말 감사합니다.

상세한 정보를 알려주셔서 진심으로 감사드립니다, @Paari_Vendhan

감사합니다.
Kumar P