Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I like to detect unreaded mails in Maildir mailboxes. The subfolder "new" only content mails that are not already pulled from an MUA. But I want the unreaded mails within INBOX (no virtual subdirs). Any suggestions how this can be implemented?

PS: I do not enter the raw mail!

Using Debian Squeeze with Postfix and Dovecot (POP, IMAP).

share|improve this question
    
What is the purpose of this? A script to report something? The way you asked the question, I could just answer: Use Thunderbird, it will display all unread mails in the Inbox. –  Sven Dec 28 '11 at 17:31
    
The purpose is to show logged on control panel users how many unread messages they have. And I have not the option to connect via imap... only via Maildir. –  burnersk Dec 28 '11 at 18:04
    
I am quite certain that the IMAP library of the language you use for your control panel will have support for this kind of task, but I consider that a topic for StackOverflow. –  Sven Dec 28 '11 at 18:06
    
don't force all down to script... when the server is not listen on 127.0.0.1 and firewall blocks soliloquy I can not connect via imap even if perl has an imap interface. I have to find a way with Maildir. Many programmers before me have tried expect Maildir. –  burnersk Dec 28 '11 at 18:12

1 Answer 1

up vote 4 down vote accepted

You use Dovecot, so each file in the maildir folder that has :2,S near the end of the file name means it has been flagged as "Seen" or "Read".

More useful info about Maildir formats:

http://wiki.dovecot.org/MailboxFormat/Maildir

http://cr.yp.to/proto/maildir.html

An example file name from my Maildir: 1324304849.M312689P14620.subdomain.domain,S=24816,W=25415:2,Sa

share|improve this answer
    
Thank you, Tim. Your solution works. –  burnersk Dec 28 '11 at 18:14
    
Obviously the above sets you on the right path, you may want to check with the stackoverflow guys for syntax examples for various languages. Perl, Python or Bash would probably be appropriate, just my opinion. –  Tim Dec 28 '11 at 18:14
2  
Haha find . -type f | grep -E ',[^,]*S[^,]*$' finds all readed and find . -type f | grep -vE ',[^,]*S[^,]*$' find all unreaded. I use shell commands... –  burnersk Dec 28 '11 at 18:23
    
Awesome, glad it is working out for you :) –  Tim Dec 28 '11 at 18:31

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.