Procmail to automatically make new folders to stor

2019-03-04 19:58发布

问题:

I am learning how to use procmail but at this point, I am not even sure it's the right tool for what I am trying to do.

So far, I have managed to get fetchmail to retrieve emails from a Google IMAP account and procmail to filter those emails into local folders I had previously created.

I am wondering though whether there is a way to get procmail to automatically create a new folder locally when an email from a new sender is being retrieved and to store that email into that folder.

So far, I have only found a website that describes the possibility of procmail creating automatically folders for mailing lists, but the recipe is something crazy using characters which I have no idea the meaning of, furthermore the official procmail website seems unreachable.

Please can you help? Thank you.

回答1:

It's not clear what you expect the folder to be called, and what mailbox format you're using; but assuming maildir folders named by the sender's email terminus, try

Who=`formail -rtzxTo:`
:0
* ? mkdir -p "$Who"
$Who/

For an mbox folder, you don't need the directory check at all, because the folder is just a single text file, and you'd drop the final slash from the folder name. Mbox needs locking, so add a second colon after the zero.

Who=`formail -rtzxTo:`
:0:
$Who

Getting formail to create a reply and then extracting the To: header of the generated reply is a standard but slightly unobvious way to obtain just the email terminus for the sender of the input message.

The shell snippet mkdir -p dir creates dir if it doesn't already exist, and is a harmless no-op otherwise.



标签: procmail