보낸 메일을 eml/msg 파일로 내보내는 방법?

Discourse에서 보낸 이메일을 파일(eml 또는 msg 형식)로 전체 내보내는 방법은 무엇인가요?

질문의 배경: Discourse의 초대 이메일이 수신 메일 서버(특정 이메일 제공사의 경우만 해당하며, 다른 이메일 제공사의 경우 정상 작동)에서 스팸으로 분류되는 문제가 있습니다. 이 문제를 디버깅하기 위해 해당 이메일 제공사가 보낸 이메일의 샘플을 eml 또는 msg 파일로 요청했습니다.

감사합니다! Simon

시몬, 안녕하세요 :wave:

스팸 폴더에서 초대 이메일을 찾을 수 있거나, 이메일이 스팸으로 감지되지 않은 다른 받은 편지함이 있는 경우, 대부분의 이메일 클라이언트에서 메시지를 이러한 형식 중 하나로 다운로드할 수 있는 옵션이 제공됩니다.

예를 들어, Gmail에서는 이메일을 .eml 형식으로 다운로드하려면 다음 위치에서 다운로드할 수 있습니다:

이메일 전송 서비스의 로그를 확인해 보시면 좋습니다.

답변해 주셔서 감사합니다!

그 부분은 알고 있으며, 해당 제공업체에 다른 제공업체에서 정상적으로 전송된 샘플을 제공했습니다. 하지만 해당 지원팀은 그들에게 직접 전송된 샘플을 명시적으로 요청했습니다. :-/ 그 요청의 타당성에 대해 그들과 논쟁할 입장은 아니지만, 그저 그들의 요청을 충족하고 싶을 뿐입니다…

@pfaffman 조금 더 자세히 설명해 주실 수 있을까요? 정확히 어떤 의미인지 잘 모르겠습니다.
우리는 두 개의 Docker 컨테이너(discourse, mail-in)를 사용하는 “표준” 설치 환경이며, 해당 제공업체의 이메일 주소를 사용하여 SMTP 연결을 통해 같은 제공업체의 다른 이메일 주소로 메일을 보내고 있습니다. 해당 제공업체가 샘플을 요청하고 있는 것으로 보아, 그들의 시스템에서 샘플을 찾지 못하거나(혹은 찾지 않으려는 것 같습니다). 그래서 discourse에서 이를 내보내는 방법을 찾고 있습니다. 관리자 패널에서 메일을 "전송 실패(undeliverable)"로 볼 수 있지만, 발신된 이메일이 아니라 수신된 바운스(bounce) 메시지만 볼 수 있습니다. “전송됨(sent)” 섹션에서는 메일과 SMTP 세부 정보( 250 2.0.0 OK queued with id Z2869bz5GCbjCq9)가 표시된 행을 볼 수 있지만, 이메일 세부 정보(헤더, 본문)나 이를 다운로드/내보내는 방법은 없습니다.

가능하지 않은 것 같으니, 기능 요청을 열겠습니다: Feature request: export of sent email as file (eml or msg)

보낸 이메일을 내보내기(export)하려면 사본을 유지해야 합니다.

모든 발신 메일을 기록하는 디버그 설정이 유용할 수 있다고 생각합니다.

현재로서는 로컬 postfix를 지정하여 사본을 다른 디렉토리에 스풀링하거나, BCC로 본인에게 메일을 보내는 방식을 사용할 수 있습니다.

답장 주셔서 감사합니다!

맞습니다. 이미 존재하는 delete email logs after days(이메일 로그 삭제 기간) 설정과 유사한 설정을 추가하는 것이 좋을 것 같습니다. 이렇게 하면 n일 후에 이메일 자체를 삭제함으로써 디스크가 가득 차는 것을 방지할 수 있습니다.

제 현재 역량 범위를 벗어난 부분이 있지만, 첫 번째 접근 방식은 (추가 작업이 필요하긴 하지만) 임시 대안으로 실행 가능해 보입니다. 두 번째 제안의 경우, 수신 메일 서버가 이메일을 변경했을 수 있기 때문에 지원팀이 해당 이메일을 거부할까 두렵습니다… :-/

최근에 이 작업을 해야 했을 때 Mailgun에서 메시지를 받았습니다. 다른 서비스에서도 이렇게 할 수 있을 것 같습니다.

음, 저희는 어떤 "서비스"도 사용하지 않습니다. 그냥 일반 메일 계정(~160명; 하루 20건 미만)으로 SMTP만 사용하고 있어요.

이메일을 수신하고 (아마도) 전달하는 SMTP 서버가 하나 있겠죠. 해당 로그에 접근할 수 없나요?

그 메시지들을 파일로 기록하게 하려면 플러그인을 사용하거나 컨테이너 내부의 코드를 해킹해야 할 것 같습니다.

우리는 SMTP 서버를 '소유’하는 것이 아니라 단순히 '사용’하고 있습니다. :wink: 이는 외부 제공업체의 메일 서버입니다(실제로는 메일을 거부하는 바로 그 제공업체입니다). 메일 서버는 메일을 전달하고 있지만, 수신 메일 서버(같은 제공업체의)가 메일을 거부하고 있는 상황입니다.
외부 제공업체의 메일 서버이므로 우리는 로그 파일에 접근할 수 없습니다.

하지만 해당 제공업체의 지원팀과 계속 연락을 주고받으며 머지않아 해결책을 찾을 수 있기를 바라고 있습니다(지금까지 거의 한 달이 걸렸는데…).

이야기는 계속됩니다… 이제 지원팀이 바운스 메일의 사본을 .eml 또는 .msg 파일로 요청하고 있습니다. 따라서 추가 질문을 드립니다: 수신한 이메일을 내보내는 것이 가능한가요? ‘이메일 → 바운스’ 섹션에서 목록 항목을 확인하고 이메일 세부 정보(헤더 필드, 제목, 메일 본문 등)를 볼 수 있지만, 메시지를 파일로 다운로드할 수 있는 옵션을 찾지 못했습니다. 제가 놓친 것이 있는지, 다른 방법이 있는지 궁금합니다.

메시지의 원본 내용(헤더와 본문, 전체)을 텍스트 파일에 복사하여 붙여넣으세요. 그것과 동일한 것입니다.

정보 주셔서 감사합니다. 인코딩 같은 것(예: MTA에서 가져온 메일 소스 코드: ...m=C3=BCssten wir auch noch mal 2 gro=C3=9Fe Switche...)이 동일하게 작동할지 확실하지 않았습니다.
Simon

그 메시지 안에 Content-Transfer-Encoding: quoted-printable이라고 적힌 헤더를 볼 수 있습니다. 이 헤더는 메시지를 읽는 쪽이 어떻게 디코딩해야 하는지를 알려줍니다.

.msg 파일에는 여러분이 생각하시는 것보다 마법이 덜 들어 있습니다 :slight_smile: