이메일 전달 기능을 위해 postfix 로그를 사용하여 이메일 로그를 추적합니다.

이메일 전달 기능을 위해 postfix 로그를 사용하여 이메일 로그를 추적합니다.

postfix를 릴레이로 사용하여 이메일을 보내는 레일스 애플리케이션이 실행 중입니다. 여기에 흐름이 있습니다

Rails -> 작업자 Resque -> Postfix -> SES -> 클라이언트에게 이메일 보내기

내 문제는 하나의 이메일도 손실되지 않고 수신자에게 제대로 전송되는지 확인하기 위해 레일 로그와 접미사 간의 관계를 찾고 싶다는 것입니다.

예를 들어, Rails 로그가 표시되면 이메일이 "[이메일 보호됨]" 그러면 이메일이 전송된 로그를 확인할 수 있습니다.[이메일 보호됨], 그리고 postfix에서도 같은 이메일을 확인하고 싶습니다. 물론 거기에 항목이 있을 것이지만, 특정 이메일이 postifx를 사용하여 전송되었는지 여부를 정확하고 정확하게 알아내려면 어떻게 해야 할까요? 수신자는 100개의 이메일을 보낼 수 있습니다.[이메일 보호됨]또는 시간 간격이 다른 50일 수 있습니다. 그렇다면 postifx 로그에서 추적할 수 있도록 Rails 앱에 특수 태그, ID 또는 기타 항목을 어떻게 추가할 수 있습니까?

문제가 명확해지기를 바랍니다.

감사해요

답변1

Rails가 Postfix에 연결하기 위해 SMTP를 사용하는 경우 응답에 관심이 있습니다 250.

250 2.0.0 Ok: queued as 41F1A40412

Rails에서 이 ID를 기록하도록 하면 나중에 발생한 상황을 Postfix 로그에서 쉽게 찾을 수 있습니다.

$ grep 41F1A40412 /var/log/mail.log

postfix/smtpd[1900]: 41F1A40412: client=localhost[127.0.0.1]
postfix/cleanup[1903]: 41F1A40412: message-id=<[email protected]>
postfix/qmgr[29213]: 41F1A40412: from=<[email protected]>, size=299, nrcpt=1 (queue active)
postfix/smtp[1904]: 41F1A40412: to=<[email protected]>, 
    relay=example.net[198.51.100.51]:25, delay=14, delays=13/0.07/0.26/0.71, dsn=2.0.0, 
    status=sent (250 2.0.0 OK 5D47140412)
postfix/qmgr[29213]: 41F1A40412: removed

적어도 이 deliver.now!메소드는 즉시 전송을 강제하므로 이 응답을 표시합니다. 이것이 정상적인 방법으로 발생하지 않는다면 deliver아마도 SMTP가 설계상 메시지 전달 책임이 누구에게 있는지 명확하기 때문일 것입니다. 다음 홉이 바로 응답에 대한 책임을 수락할 때만 모든 대기열에서 제거되어야 합니다 250 Ok.

관련 정보