On 05Dec2007 10:36, Luke Vanderfluit <[EMAIL PROTECTED]> wrote: > I know there's a few mutt users on this list so: > > Ive got a setup with mutt, procmail, fetchmail. > fetchmail -> procmail -> several mailboxes. > > While installing a new server, I inadvertently got fetchmail to > deposit the mail in another mailbox (I was running fethmail as root and it > put stuff in the 'fetchmail' mailbox) and about 2 days worth of mail got > deposited there without filtering. > > I now need to import that mail into mutt using the procmail filters to > disperse among my regular mailboxes. > > Ive done this before so I know its possible but Ive forgotten how I > did it )-:
Approach 1, using only mutt (approach 2 lower down): We're going to go filter 1, filter 2, filter several, filter them all progressively to ensure it's ok. Open the folder: mutt -f +fetchmail Filter the first message using your .procmailrc by typing: |procmail<enter> (That's an [enter] key there.) Check that the message got correctly filtered by examining your procmail log (if you use one) or examining the folder it should have landed in. If the filtering went ok, delete that message ('d'). Make sure "pipe_split" is "yes" (it defaults to "no"): :set pipe_split=yes<enter> Tag the top two messages ('tt'). Filter those two messages: ;|procmail<enter> (note the ';' tag-prefix command!) Check that both messages got correctly filtered. If pipe_split is set incorrectly they will have been sent as a single file to procmail, resulting in just one bogus message filing. You want each to go to its own procmail instance (by setting pipe_split to yes). If that went ok, delete those two messages (';d'). Now tag several messages. ('ttttttttttt'). Repeat the test. When confident, tag everything ('T.<enter>'). Then pipe to procmail: ;|procmail<enter> Get a coffee and hope. If all ok, delete them all (';d'). ============================================================= Alternatively, make a maildir folder, copy all the messages into it, then run this shell loop: cd the-maildir-folder for msg in new/* cur/* do ls -ld "$msg" # progress reporting procmail <"$msg" && rm "$msg" done Which filters each message then removes it if procmail was happy. Cheers, -- Cameron Simpson <[EMAIL PROTECTED]> DoD#743 http://www.cskk.ezoshosting.com/cs/ Neurotoxin Lite! Tastes great. Less writhing & drooling. -- SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/ Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html