procmail/formail syntax question

Giorgos Keramidas keramida at
Sun Oct 23 15:15:52 PDT 2005

On 2005-10-23 17:49, stan <stanb at> wrote:
>On Sun, Oct 23, 2005 at 10:07:17PM +0200, Roland Smith wrote:
>>On Sun, Oct 23, 2005 at 03:09:51PM -0400, stan wrote:
>>> I'm trying to get procmail to rewrite the TO: header. I've tried something like:
>>> TO=`formail -xTo:`
>> I think this command is expanded only once, and gives an empty string
>> because you didn't give formail any input.
>>> # is moved to "viruses".
>>> :0:
>>> * ^X-Virus-Status: Yes
>>> | formail -I "To: is_virus, $TO"
>> <snip>
>>> But this does not seem to be working.
>>> What am I doing wrong?
>> Why don't you put it in an appropriate mailbox directly? E.g:
>> :0:
>> * ^X-Virus-Status: Yes
>> /home/username/Mail/virus
>> :0:
>> * ^X-Spam-Status: Yes
>> /home/username/Mail/probably_spam
> That is _exactly_ wht _I_ do. However this is for a friend who recieves
> mail on this machine, then uses IMAP to fecth it to a Windoze box where he
> reads it with Outlook. He aparently does not now how to filter within
> Outlook on anything but the subject.
> So, I need to be able to rewrite the subject. Yes it's dumb but....

	``Much confusion in you I sense, young Jedi.''

If you want to rewrite the *SUBJECT* of the messages, then why are you
trying to rewrite the *RECIPIENT* header?

Having said that, I think that what you're missing is the 'f' option in
the rule that pipes mail to formail and that you don't really need
formail for something as simple:

	:0 Hf
	* X-Virus-Status: Yes
	| sed -e 's/^[sS]ubject:[[:space:]]\+/Subject: [virus] '

More information about the freebsd-questions mailing list