Mail-receiver 또는 Discourse가 이메일 답변을 게시하지 않음

최근에 Discourse를 AWS에서 DO로 마이그레이션했습니다. Migrate from AWS to Digital Ocean with 2 containers, spaces and 2 CDNs - #3 by dfriestedt. 모든 것이 잘 작동하고 있지만, 메일 수신기(mail-receiver)만 예외입니다.

이메일로 답장하고 ./launcher logs mail-receiver로 로그를 확인하면 다음과 같은 내용이 표시됩니다.

Operating environment:
RUBYGEMS_VERSION=2.7.7
MAIL_DOMAIN=reply.EXAMPLE.com
BUNDLER_VERSION=1.16.3
DISCOURSE_API_USERNAME=system
LANG=en_US.UTF-8
HOSTNAME=discourse-beta-ubuntu-s-4vcpu-8gb-nyc1-01-mail-receiver
RUBY_VERSION=2.3.7
GEM_HOME=/usr/local/bundle
PWD=/
HOME=/root
DISCOURSE_API_KEY=REMOVE
BUNDLE_PATH=/usr/local/bundle
BUNDLE_APP_CONFIG=/usr/local/bundle
TERM=xterm
BUNDLE_SILENCE_ROOT_WARNING=1
RUBY_MAJOR=2.3
SHLVL=1
RUBY_DOWNLOAD_SHA256=c61f8f2b9d3ffff5567e186421fa191f0d5e7c2b189b426bb84498825d548edb
PATH=/usr/local/bundle/bin:/usr/local/bundle/gems/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DISCOURSE_MAIL_ENDPOINT=http://discuss.EXAMPLE.com.com/admin/email/handle_mail
DOCKER_HOST_IP=172.17.0.1
_=/usr/bin/env
Delivering mail sent to reply.EXAMPLE.com to Discourse
Starting Postfix

로그에서 상태가 "sent"로 표시되는 것 같지만, 답장이 Discourse에 표시되지 않습니다. 혹시 조언해 주실 만한 점이 있을까요? 이 문제는 AWS에서 DO로 마이그레이션을 한 후에만 발생하기 시작했습니다.

<22>Sep 28 15:27:24 postfix/master[1]: daemon started -- version 3.2.4, configuration /etc/postfix
<22>Sep 28 15:28:32 postfix/smtpd[82]: connect from mail-vs1-f104.google.com[209.85.217.104]
<22>Sep 28 15:28:32 postfix/smtpd[82]: B56602F7524: client=mail-vs1-f104.google.com[209.85.217.104]
<22>Sep 28 15:28:32 postfix/cleanup[89]: B56602F7524: message-id=<b1642e591e436f0abeea7d2f34a48aa9@frontapp.com>
<22>Sep 28 15:28:32 postfix/qmgr[81]: B56602F7524: from=<drew@XXXX.com>, size=21558, nrcpt=1 (queue active)
<22>Sep 28 15:28:32 postfix/smtpd[82]: disconnect from mail-vs1-f104.google.com[209.85.217.104] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
<23>Sep 28 15:28:32 receive-mail[91]: Recipient: replies+9009a1d55776827244f5c75332c2efa7@reply.EXAMPLE.com
<22>Sep 28 15:28:32 postfix/pipe[90]: B56602F7524: to=<replies+9009a1d55776827244f5c75332c2efa7@reply.EXAMPLE.com>, relay=discourse, delay=0.3, delays=0.17/0/0/0.13, dsn=2.0.0, status=sent (delivered via discourse service)
<22>Sep 28 15:28:32 postfix/qmgr[81]: B56602F7524: removed

다음 명령을 실행하여 로그를 확인해 보았습니다. 원인을 알 수 없는 일시적인 실패가 발생하는 것 같습니다.

./launcher enter mail-receiver
mailq

-Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
348432F7524*   11603 Mon Sep 28 16:01:06  mapmeister@XXX.net
                                         replies+429b18013a7bd110cab88a1a0f57f4cd@reply.XXX.com

95ED82F7526*   21757 Mon Sep 28 16:01:10  drew@XXX.com
                                         replies+9009a1d55776827244f5c75332c2efa7@reply.XXX.com

42A2C2F6EE0    21607 Mon Sep 28 15:25:32  drew@XXX.com
                                                           (temporary failure)
                                         replies+9009a1d55776827244f5c75332c2efa7@reply.XXX.com

324792F6EDF    23547 Mon Sep 28 15:23:22  drew@XXX.com
                                                           (temporary failure)
                                         replies+b42b43ae2bde8b6b951d46647f387b32@reply.XXX.com

D07792F7525    21712 Mon Sep 28 15:53:04  drew@XXX.com
                                                           (temporary failure)
                                         replies+9009a1d55776827244f5c75332c2efa7@reply.XXX.com

mail-receiver 컨테이너의 최신 버전을 실행 중이신가요? 다음 주제가 도움이 될 수 있습니다:

확인해 보셔야 할 다른 사항들:

  • mail_receiver 설정의 API 키가 Discourse 관리자 UI의 API 키와 일치합니까?
  • /admin/email/rejected 로그에 표시되는 이메일이 있습니까?

안녕하세요. 답변 감사합니다.

mail-receiver.yml 파일에서 base_image: discourse/mail-receiver:release를 사용하고 있으며, 메일 리시버가 오래되었다는 오류 메시지는 확인되지 않습니다. 메일 리시버를 여러 번 다시 빌드해 보았지만 여전히 문제가 해결되지 않았습니다.

/admin/email/rejected 페이지에서 거부된 이메일도 확인되지 않습니다. system 사용자를 위한 새로운 API 키를 모든 권한을 부여하여 발급했고, 이를 mail-receiver.yml에서 사용하고 있습니다. 처음에는 API 문제인 줄 알았지만, 여러 번 확인해 본 결과 숫자가 일치하는 것을 확인했습니다.

궁금한 점이 있는데, 제가 만든 API에서 활동이 전혀 보이지 않습니다

컨테이너 간의 네트워크 연결을 테스트하려면, 다음과 같이 컨테이너에 진입해 볼 수 있습니다.

./launcher enter mail-receiver

그런 다음 다음을 시도해 보세요.

wget -O - $DISCOURSE_MAIL_ENDPOINT

연결이 성공적으로 이루어지면 다음 내용을 확인하게 됩니다.

wget: server returned error: HTTP/1.1 404 Not Found

그렇지 않다면, 설정 파일의 DISCOURSE_MAIL_ENDPOINT 값을 다시 한번 확인해 보세요.

제 무능함이 정말 심하네요. 커다란 바보 모자를 써야 할 것 같습니다.

Connecting to discuss.360velo.com.com (199.59.242.154:80).

com.com… ??? DISCOURSE_MAIL_ENDPOINT 설정이 잘못되어 있었습니다. URL에 .com.com이 두 번 들어가 있었고, http 대신 https를 사용해야 했어요. 올바른 방향으로 이끌어주셔서 정말 감사합니다.