Re: Duplicate Emails

Julian Bane via Fetchmail-users <[email protected]>
Newsgroups gmane.mail.fetchmail.user
Organization J R Bane Consulting
Message-ID <[email protected]>
Good morning Mattias and all,

I have managed to suppress the X-Original-To header by setting 
"*enable_original_recipient = no*" in the postfix configuration file. 
But still don't get duplicate emails suppressed, though the 
X-Original-To header is. (Matthias - I can send you the mailbox file if 
you want).

I have cut out two emails and verified they still have differences in 
the headers (some de-personalization done):

    1,3c1,3
    < From [email protected] Fri Jan 29 07:38:31 2021
    < Return-Path: <[email protected]>
    < Delivered-To: [email protected]
    ---
     > From [email protected] Fri Jan 29 07:38:29 2021
     > Return-Path: <[email protected]>
     > Delivered-To: [email protected]
    38c38
    < X-UID: 24
    ---
     > X-UID: 23

It's hard to see how you could ever get two identical sets of headers 
for de-duplication to work.

Not wishing to either make trouble or make work for others but could the 
documentation be reworded to reflect how the de-duplication works. 
Currently it says "/A piece of mail is considered duplicate if it has 
the same message-ID as the message immediately preceding and more than 
one addressee/".

Many thanks and have a good weekend,

Julian

On 29/01/2021 00:04, Matthias Andree wrote:
> Am 28.01.21 um 09:00 schrieb Julian Bane via Fetchmail-users:
>> I have exactly the same results on fetchmail 6.4.15 - openSUSE
>> Tumbleweed current release which reports:
>>
>>      "This is fetchmail release
>> 6.4.15+POP2+GSS+RPA+NTLM+SDPS+SSL-SSLv2-SSLv3+OPIE+NLS+KRB5."
>>
>>
>> On 27/01/2021 13:41, Julian Bane via Fetchmail-users wrote:
>>> I have been running a test using fetchmail (6.3.26) on an openSUSE
>>> Leap 15.2 server to retrieve email from a local email account. That
>>> account has been sent 5 seperate emails. Three of the emails are to
>>> single addresses, one is to two addresses and another is to three
>>> addresses. As expected there are 8 separate emails in the local mail
>>> spool file from the 5 I sent. As a test I am using the fetchmailrc file:
>>>
>>>      set postmaster root
>>>      poll cumulus protocol POP3 local mydomain.net envelope
>>> "X-Original-To:"
>>>              username "user" password "pass" to * here fetchall keep
>>>              mda "echo 'Hello World - %T - %F'"
>>>
>>> The mda is just a dummy to see what is going on when I run it from
>>> the command line.
>>>
>>> It retrieves all 8 emails correctly identifying the origonal
>>> recipient and %T is substituted correctly for the different email
>>> adresses.
>>> Doing "fetchmail -V -f fetchmailrc" confirms that it is running in
>>> multidrop mode.
>>>
>>> If I substitute 'myname' for the '*' (asterisk) in fetchmailrc,
>>> fetchmail goes into singledrop mode as you would expect (checked with
>>> the -V option) but also retrieves all 8 emails.
>>>
>>> I am not sure which way round it should be, multidrop or singledrop,
>>> but I do want to remove duplicates and so want to retrieve just 5
>>> emails from the spool file (have been reading "THE USE AND ABUSE OF
>>> MULTIDROP MAILBOXES" on the man page). I have checked that the
>>> message-IDs are the same and there are multiple recipients on the
>>> 'To:' header of the relevant emails. I also have a copy of the spool
>>> file if it would help.
>>>
>>> Any advice or insight would be most welcome.
> Greetings,
>
> So after reviewing 6.4.15 logs that Julian sent to me off-list, some
> remarks:
>
> * The server in the test scenario contains messages with these
> Message-ID shown below. Meaning that the duplication already happened on
> the server-side mailbox:
>
> Message-ID: <16116718
> Message-ID: <6ec00e74
> Message-ID: <bbe93702
> Message-ID: <f1711007
> Message-ID: <f1711007
> Message-ID: <f1711007
> Message-ID: <f30f6378
> Message-ID: <7c6c3256
> Message-ID: <7c6c3256
>
> * fetchmail works as I believe it should: the server's mailbox in
> Julian's test scenario contains eight messages and fetchmail obtains and
> delivers eight. So fetchmail is not duplicating messages. Neither is it
> deduplicating, see next:
>
> * fetchmail has some deduplication code, but it is for a very specific
> and historic purpose: if the most-dangerous "To:/Cc:" guessing is being
> applied for lack of a header that carries a copy of the envelope's (SMTP
> dialogue's) destination address (Julian is using X-Original-To), then
> deduplication is supposed to kick in. The dedup'ing code compares the
> ENTIRE header (by way of calculating its MD5 hash value) in a run of
> message and suppresses all copies but the first.
>
> This code however is not supposed to work and also technically can not
> work in Julian's scenario: the headers of the server-side messages are
> *not exactly* the same, and differ in the X-Original-To: headers.
> Enhancing this deduplication code would mean changing behaviour and
> hence should not happen before fetchmail 7.0.0. An idea is to filter out
> a certain list of headers (among which the envelope's destination
> address recording headers) and only then hashing what is left of the
> header. But given the proposal below I'd say we don't actually need to
> change fetchmail:
>
> * Possible solution: install the standalone "maildrop" package from the
> Courier mailserver suite and use it, or a wrapper script for it, as mda.
> Maildrop ships with a "reformail" tool that can track Message-IDs of
> seen messages in a database and its exit status can be used to suppress
> these duplicates by message ID (it's option -D). The maildropex(7)
> manual page contains an example, just look for the first occurrence of:
> reformail -D
>
> https://www.courier-mta.org/maildrop/maildrop.html
>
>
> Note I strongly discourage using procmail. It has been unmaintained for
> like two decades and is inherently unsafe: All error handling and
> locking needs to be put in your recipes explicitly to achieve
> deterministic behavior in adverse conditions (such as under load).
> maildrop is safer to use and its .mailfilter files are easier to
> understand and write, and it is well-behaved by default, unlike procmail.
>
> HTH
>
> Happy fetching & deduplicating,
>
> Matthias
>
>
>
> _______________________________________________
> Fetchmail-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/fetchmail-users


_______________________________________________
Fetchmail-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fetchmail-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.