dmarc-report-converter
dmarc-report-converter copied to clipboard
Messages with inline MIME headers are not processed
I've received some emails that use inline MIME headers which are silently ignored.
Sample content:
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: multipart/mixed; boundary="17122880850.dd5Fb0.406180"
--17122880850.dd5Fb0.406180
Date: Thu, 4 Apr 2024 23:34:45 -0400
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Disposition: inline
This is a DMARC aggregate report for example.com
8 records.
8 passed.
0 failed.
Submitted by Pobox by Fastmail Pty Ltd
Generated with Mail::DMARC 1.20240313
--17122880850.dd5Fb0.406180
Date: Thu, 4 Apr 2024 23:34:45 -0400
MIME-Version: 1.0
Content-Type: application/gzip;
name="pobox.com!example.com!1712188800!1712275199!46972001.xml.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="pobox.com!example.com!1712188800!1712275199!46972001.xml.gz"
PUT/YOUR/BASE64/STUFF/HERE==
--17122880850.dd5Fb0.406180--
At the very least, it would help to log a message:
[WARN] extractAttachment: inline MIME headers are not currently supported, skip
The underlying issue is here: https://github.com/tierpod/dmarc-report-converter/blob/abf80ca2ebc98e0437aaa4253fe7b4f4e0ec716f/cmd/dmarc-report-converter/imap.go#L173-L174
An offending message returns headers of type *mail.InlineHeader
. The go-message API for inline vs attachment headers is very different. See https://github.com/emersion/go-message/issues/138 for a discussion about the need for feature parity between the two types, but it doesn't appear that any work has been done.
I suppose that this is the same issue:
[INFO] files: found 243 input files in /home/james/Maildir/.dmarc/cur/
[ERROR] files: mimetype text/plain; charset=utf-8 not supported in file /home/james/Maildir/.dmarc/cur/..., skip
...
[ERROR] processFiles: reports list is empty
Since that error includes every single dmarc report received, how is dmarc-report-converter
useful? Am I missing something? Do each of the dmarc report files need to be manually extracted before processing?
@thx1111, I think you're problem is unrelated.