Sorry for the top posting.
Here the solution I found, without using a secondary Sent folder:
My sieve script is like this:
———————————————————————————————————————— require [ "imapsieve", "include" ];
include :personal :optional "pre-sent-checks"; discard; ————————————————————————————————————————
During the import phase, the sieve user script "pre-sent-checks.sieve" is created with this content:
———————————————————————————————————————— keep;stop; ————————————————————————————————————————
Once the import phase is finished, the user script contains this:
———————————————————————————————————————— require ["include"]; return; ————————————————————————————————————————
This is very well enough for me. The import takes just a few seconds, I don't have race conditions for now. I prefer doing this than createing a secondary Sent folder.
On Sun, 2021-04-04 at 14:43 +0200, Sebastian wrote:
Why won't it work to just, as I said, create a separate folder, like Sent2, which you use as a "midpoint" to land all your externally imported emails, and then you just move everything from Sent2 to Sent.
-----Ursprungligt meddelande----- Från: dovecot-bounces@dovecot.org dovecot-bounces@dovecot.org För André Rodier Skickat: den 4 april 2021 14:40 Till: Dovecot Mailing List dovecot@dovecot.org Ämne: Re: Sv: Sv: Sv: Avoid duplicate emails in the sent folder
On Sun, 2021-04-04 at 14:31 +0200, Sebastian wrote:
Also another important thing to take in consideration:
An email that is sent outgoing from an SMTP server, isn't a exact copy of the email put into the SMTP server. Thats why a deduplicate program/command/filter won't work, as the 2 emails aren't 100% identical. Thanks, I see this as the main issue
The 2 "duplicates" arent technically 100% identical. Thats why the only solution is to prevent the IMAP client from writing new "unknown" emails into the Sent folder, and then instead use a separate folder for importing emails across accounts (from which you then COPY/MOVE emails from internally in the same acount, to the Sent folder).
I continue to search on a simple solution, and I will come back to you!
-----Ursprungligt meddelande----- Från: dovecot-bounces@dovecot.org dovecot-bounces@dovecot.org För André Rodier Skickat: den 4 april 2021 14:10 Till: Dovecot Mailing List dovecot@dovecot.org Ämne: Re: Sv: Sv: Avoid duplicate emails in the sent folder
Hello Sebastian,
On Sun, 2021-04-04 at 14:00 +0200, Sebastian wrote:
Thats why you need the exim4 filter too.
I obtained the exact same result with postfix, using +Sent and a sieve filter. Sent emails are automatically bcc'ed to the user, using the +Sent email address.
However, I still want to be able to drag and drop emails to the sent folder, which unfortunately uses the APPEND verb.
Also, there is a mail import wizard that import emails from gmail/yahoo/etc, and there the verb used is APPEND.
I am now investigating the doveadm deduplicate program.
Kind regards, André
Because, my version basically prohibits the IMAP client from writing to the Sent folder at all, and gives that job to the SMTP server instead. Works perfectly for me, all sent emails gets into the sent folder without any hitch.
Without any duplicates since no IMAP client is permitted to write into the Sent folder.
Note that only APPEND should be specifyed, not COPY, meaning that if you COPY from the same IMAP account to Sent folder, it will be permitted, but if you APPEND (write a new email) to the Sent folder, it will get auto-deleted.
-----Ursprungligt meddelande----- Från: dovecot-bounces@dovecot.org dovecot-bounces@dovecot.org För André Rodier Skickat: den 4 april 2021 13:57 Till: Dovecot Mailing List dovecot@dovecot.org Ämne: Re: Sv: Avoid duplicate emails in the sent folder
Thanks, Sebastian.
I just tried this, but it is working too well.
If I want to import emails from another Sent folder, using drag & drop from my email client, the emails are deleted in the background.
This is why I am trying to use the duplicate filter.
Kind regards, André Rodier
On Sun, 2021-04-04 at 13:04 +0200, Sebastian wrote:
I have a sieve filter called "sent.sieve"
Where I just do this: discard;
Then in sieve settings:
plugin { sieve_plugins = sieve_imapsieve sieve_extprograms sieve_global_extensions = +vnd.dovecot.execute sieve_execute_bin_dir = /usr/bin/ imapsieve_mailbox2_name = Sent imapsieve_mailbox2_causes = APPEND imapsieve_mailbox2_before = file:/etc/dovecot/sieve/sent.sieve imapsieve_expunge_discarded=yes }
And then in Exim4 SMTP server:
sentfolder.filter: if $sender_address_domain is sebbe.eu then unseen save /var/mail/asterisk2/Sent endif
in exim4 config: system_filter = /etc/exim4/sentfolder.filter system_filter_file_transport = sentfolder
in transports of exim4.conf:
sentfolder: debug_print = "T: Sentfolder for $local_part@$domain" headers_add = Status: RO headers_remove = x-dkim-signature headers_remove = x-spf-signature headers_remove = x-trusted-domain headers_remove = keywords headers_remove = x-priority headers_remove = x-status driver = appendfile delivery_date_add envelope_to_add return_path_add use_flock_lock = yes use_fcntl_lock = no use_lockfile = no group = mail mode = 0777 mode_fail_narrower = false current_directory = /
that should solve it.
-----Ursprungligt meddelande----- Från: dovecot-bounces@dovecot.org dovecot-bounces@dovecot.org
För André Rodier Skickat: den 4 april 2021 12:48 Till: dovecot@dovecot.org Kopia: users@sogo.nu Ämne: Avoid duplicate emails in the sent folder
Hello,
I have a webmail program, that I cannot configure to not save sent emails in the Sent folder. My emails to the SOGo team don't seem to reach the mailing list anymore.
So, I have no other choice to think the problem differently, and _maybe_ use Dovecot to fix this issue. Moreover, I think this could be useful for other email clients.
First, I have tried to use Sieve, but no success so far:
imapsieve_mailbox4_name = * imapsieve_mailbox4_from = Sent imapsieve_mailbox4_causes = APPEND, COPY imapsieve_mailbox4_after = file:/var/lib/dovecot/sieve/sent- checks.sieve
And this sieve script:
Message-ID header. require [ "variables", "environment", "duplicate", "imapsieve" ];
[…]
if duplicate :seconds 10 { discard; }
Otherwise, can I configure dovecot in a certain way, for instance create a virtual Sent folder. This would not save the email when appended, but still returns the list of sent emails ?
But this is not working. Any idea?
Thanks for your help!
André