dlucazeau
(Daniel Lucazeau)
2월 25, 2026, 11:24오전
1
다음 링크 Email delivery configuration checklist 및 이후 게시물의 이메일 관련 가이드를 주의 깊게 읽었습니다.
또한 이 링크 How to setup "Reply by email address" now that it must be different from the "Notification email" 과 이 링크 Notification email cannot be the same as reply by email 도 연구해 보았습니다.
포럼에서 사용하는 모든 주소는 Thunderbird나 Claws Mail 같은 메일 클라이언트를 통해 메일을 보내고 받을 수 있습니다.
총 4개의 서로 다른 주소가 있으며, 이 주제와 관련된 것은 처음 3개뿐입니다:
app.yml의 관리자 주소: admin@
app.yml의 알림 주소: forum@
답장(reply-to) 주소: reply@
그리고 이메일 게시용 주소: questions@
포럼의 메일링 리스트(mailing list) 상태로 받는 알림은 올바르게 전송됩니다. 또한 admin/email/server-settings 페이지의 전송 테스트도 잘 수행됩니다.
이메일 답장(reply by email) 기능을 설정하면 해당 기능은 정상적으로 작동하지만, 알림 기능이 더 이상 작동하지 않습니다.
이때 이전의 전송 테스트는 "501 5.5.4 You are not allowed to send from this address."라는 상태 메시지와 함께 실패합니다.
이메일 답장 기능을 비활성화하면 테스트가 다시 올바르게 통과합니다.
왜 이런 오류가 발생하는지, 그리고 알림과 “이메일 답장” 기능을 모두 올바르게 설정하는 방법에 대해 설명해 주실 분 계신가요?
pfaffman
(Jay Pfaffman)
2월 25, 2026, 11:53오전
2
해당 메시지는 메일 발송 서비스에서 나온 것입니다. 의미가 매우 명확합니다.
SMTP 서버가 사용할 수 있는 이메일 주소에서 메일을 보내야 합니다. 예를 들어, 서버가 example.com에서 메일을 보내도록 설정되어 있는데, 지금 forum.example.com에서 보내고 있는 상황과 같습니다.
dlucazeau
(Daniel Lucazeau)
2월 25, 2026, 12:12오후
3
그렇다면 왜 한 경우에서는 발송 테스트가 성공하는데, "이메일로 답변"을 활성화하면 실패하나요? 알림 설정에서는 아무것도 변경하지 않았음을 분명히 합니다.
Discourse가 이메일을 준비하는 과정에서 어떤 일이 일어나고 있나요?
dlucazeau
(Daniel Lucazeau)
2월 25, 2026, 2:05오후
4
이 문제는 확실히 Discourse에서 비롯됩니다.
로그 설정을 더 세밀하게 조정해 보니, 게시된 메시지가 올바른 주소로 인증되고 있음을 확인할 수 있습니다:
2026-02-25T12:54:24Z TRACE Data store
iteration operation (store.data-iterate) elapsed = 0ms
<3.14, remotePort = 47104, accountName =
“forum.cagut@domain.tld”, accountId = 31
하지만 다음과 같이 변합니다.
2026-02-25T12:54:24Z ^\[\[35;1mTRACE ^\[\[37;1mRaw SMTP output sent
(smtp.raw-output) listenerId = “submissions”, localPort = 465, remoteIp
= 51.178.53.14, ^>
<53.14, remotePort = 47104, size = 73,
contents = “MAIL
FROM:<reply.cagut+verp-8bf40c695b1f612e555cf25f3c14c9b8@domain.tld>\\r\\n”
메일 서버는 이 주소 형식에 대해 전혀 알지 못합니다.
pfaffman
(Jay Pfaffman)
2월 25, 2026, 7:12오후
5
이 마법 숫자는 Discourse가 답변을 해당 토픽과 연결하는 방식입니다.
다른 메일 서버를 사용하거나(또는 이 서버를 + 주소 형식을 지원하도록 변경하거나), 메일 답변 기능을 사용하지 않아야 합니다.
dlucazeau
(Daniel Lucazeau)
2월 25, 2026, 7:27오후
6
네, 그게 "이메일로 답변하기"를 사용するための 식별자라는 건 알고 있습니다.
따라서 "이메일로 답변하기"가 활성화되어 있을 때 메일 발송 테스트가 작동하지 않습니다. 문서에는 이 부분이 명시되어 있지 않으며, 오류는 메일 서버가 아닌 Discourse에서 발생한다는 점이 분명합니다. 이는 당신의 첫 번째 답변과 일치합니다!
dlucazeau
(Daniel Lucazeau)
2월 25, 2026, 8:30오후
7
그런데 “from” 주소에 이런 "magic number"가 어떻게 포함될 수 있나요? 이 주소 형식은 헤더에서 사용됩니다.
귀하의 답변은 전혀 답변이 아닙니다.
이 “From” 변환은 수행되어서는 안 됩니다.
소프트웨어에 의해 제공된 기능을 포기해야 한다는 답변은 이상합니다…
내일 추가 연구를 진행하겠습니다.
헤더 자체의 변환이라기보다는, 이메일로 답글 보내기(reply-by-email)가 활성화되면 Discourse가 envelope-from을 reply_by_email_address 주소 패턴으로 설정하고, 이메일이 답글 가능 상태라면 reply-to:도 설정하여 이메일을 발송합니다.
예를 들어, 여기 meta에서는 다음과 같습니다:
notification_email: notifications@meta.discoursemail.com
reply_by_email_address: incoming+%{reply_key}@meta.discoursemail.com
이것이 다음과 같이 변환됩니다:
Return-Path: <incoming+verp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@meta.discoursemail.com>
From: Person <notifications@meta.discoursemail.com>
Reply-To: Person <incoming+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@meta.discoursemail.com>
알림 이메일은 From 헤더에, reply_by_email_address는 envelope-from에 배치됩니다. 우리는 수신 메일 설정에서 …@meta.discoursemail.com으로 보내지는 모든 메일이 meta로 전달되도록 구성하여 이 방식이 작동하도록 했습니다.
하지만 이메일 서버에서 이 envelope-from을 사용할 수 없도록 설정되어 있다면, 보고하신 오류가 발생하게 됩니다.
이 오류는 분명 메일 서버에서 발생한 것입니다. Discourse가 이를 보고해 드릴 수는 있지만, 오류를 생성하는 주체는 메일 서버입니다.