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

Reply via email to