in reply to IMAP: mark message as unseen

I think the \Seen flag is set automatically by the IMAP server whenever any client retrieves a message body. At least in my (automated) IMAP clients, I have resorted to programmatically remove the \Seen flag on mails that I retrieve. Looking at Mail::IMAPClient, there is mention of the Peek flag, which should let the IMAP server know that the mail should remain unread. I haven't tried this, but it could work like this:

$imap->Peek(1); # don't mark mails as \Seen automatically my @unseen = reverse sort $imap->search_unseen; for my $i (@unseen) { my $msg = join '', @{$imap->get($i)}; unless (fork) { if (&process (Email::MIME->new (\$msg)) eq "notouch") { $imap->unsee ($i); exit; } } }

Replies are listed 'Best First'.
Re^2: IMAP: mark message as unseen
by Arik123 (Sexton) on Jul 10, 2018 at 09:30 UTC

    Okay, the PEEK things works... temporarily (it isn't implemented in Net::IMAP::Simple::SSL, but I did it manually). After fetching the messages using the PEEK thing, the web interface shows that the messages are still unread. However, if I wait a few moments without any action, and then re-load the web interface, the messages are marked as Seen.

    Any idea what is going on? Thanks a lot!

      Sorry, it was probably my mistake.

      However, the PEEK method doesn't yet work perfectly (I'm trying to figure out why). Is there any alternative?

        I think before I discovered PEEK, I removed the \Seen flag from each message after reading it, but I don't find any code anymore in which I did that and how I did it, sorry.