procmail
[Top] [All Lists]

Re: Adding custom mail headers via a filter?

2002-10-16 02:43:38
I've just witnessed my second mail delivery problem today..

Any mail that goes through two filters is getting it's From_ removed.

This is not the kind of problem you want to have.

it's consistent

Can procmail handle a message going through multiple filters?

I'm seeing that it can't.

Here's the rules in question.

Previously neither filter had a local lock file.

So first the message goes through

:0 fw:$HOME/strip.lock
* ^Content-type:.*boundary
| $HOME/perlscripts/strip_attachments.pl

and then

:0 Wf:$HOME/filtmail.lock
| $HOME/.filtmail/filtmail

:0 a:$HOME/copy.lock
$MAILDIR/copy

If I comment out the strip filter above it works correctly. ie. From_ intact.

I'll include the strip_attachments.pl which has been running with no problems for several months but up until today it was the only filter that saw the message.

#! /usr/bin/perl5 -w

use lib "$ENV{HOME}/lib/perl5/site_perl";

use IO::Scalar;
use MIME::Parser;
use MIME::Entity;

my $parser = MIME::Parser->new;

$parser->output_to_core(1);
$parser->tmp_to_core(1);

#$envelope = <STDIN>;

my $ent = $parser->parse(\*STDIN);

if ($ent->effective_type eq "multipart/mixed" &&
        $ent->parts == 2 &&
        $ent->parts(0)->effective_type eq "text/plain" &&
        $ent->parts(1)->effective_type eq "application/ms-tnef") {

        my $newent = MIME::Entity->build(Data =>
                        $ent->parts(0)->body_as_string .
                        "\n\n[[WINMAIL.DAT removed]]\n");

        $ent->parts([$newent]);
        $ent->make_singlepart;
        $ent->sync_headers(Length => 'COMPUTE', Nonstandard => 'ERASE');
        #$ent->dump_skeleton(\*STDERR);
}
if ($ent->effective_type eq "multipart/alternative" &&
        $ent->parts == 2 &&
        $ent->parts(0)->effective_type eq "text/plain" &&
        $ent->parts(1)->effective_type eq "text/html") {

        my $newent = MIME::Entity->build(Data =>
                        $ent->parts(0)->body_as_string .
                        "\n\n[[HTML alternate version deleted]]\n");

        $ent->parts([$newent]);
        $ent->make_singlepart;
        $ent->sync_headers(Length => 'COMPUTE', Nonstandard => 'ERASE');
        #$ent->dump_skeleton(\*STDERR);
}

#print $envelope;
$ent->print;

Procmail log file follows.

procmail: [15112] Wed Oct 16 09:16:11 2002
procmail: Assigning "LOGABSTRACT=yes"
procmail: Assigning "FGREP=/usr/bin/fgrep"
procmail: Assigning "FORMAIL=/usr/local/bin/formail"
procmail: Assigning "SHELL=/bin/sh"
procmail: Assigning "CAT=/bin/cat"
procmail: Assigning "SED=/usr/bin/sed"
procmail: No match on "^X-Loop: robert(_at_)elastica(_dot_)com"
procmail: No match on ! "^From:.*(robert(_at_)elastica(_dot_)com|steffi@)"
procmail: Match on "^Content-type:.*boundary"
procmail: Locking "/usr/home/steffi/strip.lock"
procmail: Executing "/usr/home/steffi/perlscripts/strip_attachments.pl"
procmail: [15112] Wed Oct 16 09:16:12 2002
procmail: Unlocking "/usr/home/steffi/strip.lock"
procmail: No match on "^Subject:.*isbn"
procmail: No match on "^Subject:.*pageron"
procmail: No match on "^Subject:.*pageroff"
procmail: No match on "TOjava-dev"
procmail: No match on "^From:.*(lattice(_at_)dircon(_dot_)co(_dot_)uk|lattice(_at_)onetel(_dot_)net(_dot_)uk)" procmail: No match on "^From:.*(annsoey(_at_)hotmail(_dot_)com|ann_soey(_at_)lovemail(_dot_)com|ann_soey2(_at_)lovemail(_dot_)c om|ploysoey(_at_)hotmail(_dot_)com)"
procmail: No match on "^From:(_dot_)*(_at_)amazon(_dot_)com"
procmail: No match on "^From:.*(davidkahn(_at_)hotmail(_dot_)com)"
procmail: No match on "^From:.*@(bankofamerica.com)"
procmail: No match on "^From:.*@(pershing.com)"
procmail: No match on "^From:.*@(csfb.com)"
procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)(_dot_)*(_at_)lists(_dot_)apple(_dot_)com" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)melbwireless" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)rmi-users" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)j2ee-interest" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)jsp-interest" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)ajug" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)x-apps" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)dev-crypto" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)titanium" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)(digicam|DigiCam)" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)bluetooth" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)j2eeblueprints-interest" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)MacDV" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)MacProAudio.lock" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)x4u" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)servlet-interest" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)ibook" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)entourage-talk" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)axis-user" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)x-unix" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)struts-dev" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)webobjects-dev" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)xsl-list" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)tomcat-user" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)ant-user" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)cocoon-users" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)ejb-interest" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)j2eepatterns-interest" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)kvm-interest" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)thinkpad(_at_)cs(_dot_)utk(_dot_)edu" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)dev-crypto-help(_at_)bouncycastle(_dot_)org" procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)chimera"
procmail: No match on "^From:(_dot_)*mailing(_at_)iaip2509(_dot_)vwh(_dot_)net"
procmail: No match on "^From:(_dot_)*cooljobs(_at_)filenet(_dot_)com"
procmail: No match on 
"^From:(_dot_)*michael_gasson(_at_)orix(_dot_)com(_dot_)au"
procmail: No match on "^From:(_dot_)*kbkey(_at_)hotmail(_dot_)com"
procmail: No match on "^Subject: Out of Office"
procmail: No match on "^From:(_dot_)*(_at_)[Mm]ailbits(_dot_)com"
procmail: No match on "^From:(_dot_)*msdwautoreply(_at_)msdw(_dot_)com"
procmail: No match on "^From:(_dot_)*ericy(_at_)netian(_dot_)com"
procmail: No match on "^From:(_dot_)*mailadmin(_at_)mktgdir(_dot_)zzn(_dot_)com"
procmail: No match on 
"^From:(_dot_)*Mailer-Daemon(_at_)ns(_dot_)netple(_dot_)co(_dot_)kr"
procmail: No match on 
"^From:(_dot_)*merchants(_at_)cr41(_dot_)staffs(_dot_)ac(_dot_)uk"
procmail: No match on "^From:(_dot_)*MDaemon(_at_)sp(_dot_)nl"
procmail: No match on "^From:(_dot_)*ciao(_at_)ultranet-telecom(_dot_)com"
procmail: No match on "[Nn]igeria"
procmail: No match on "^From:.*(michaelpage.com.au|candlerecruit.com)"
procmail: No match on "^From:.*(integra-contracts.com)"
procmail: No match on "^From:(_dot_)*(_at_)(_dot_)*dataviz(_dot_)com"
procmail: No match on "^From:.*tech-agentserver"
procmail: No match on "^From:.*(annyann|ann(_at_)elastica(_dot_)com|suphannikas(_at_)yahoo(_dot_)com)"
procmail: No match on "^From:(_dot_)*(_at_)hotjobs(_dot_)com"
procmail: No match on "(^(Mailing-List:|Precedence:.*(junk|bulk|list)|To: Multiple recipients of |(((Resent-)?(From|Sender)|X-Envelope-From):|>?From )([^>]*[^((_dot_)%(_at_)a-z0- 9])?(Post(ma?(st(e?r)?|n)|office)|(send)?Mail(er)?|daemon|m(mdf|ajordomo )|n?uucp|LIST(SERV|proc)|NETSERV|o(wner|ps)|r(e(quest|sponse)|oot)|b(oun ce|bs\.smtp)|echo|mirror|s(erv(ices?|er)|mtp(error)?|ystem)|A(dmin(istra tor)?|MMGR|utoanswer))(([^).!:a-z0-9][-_a-z0-9]*)?[%@> ][^<)]*(\(.*\).*)?)?$([^>]|$)))"
procmail: No match on "^FROM(_dot_)*(_at_)(_dot_)*computec-intl(_dot_)com"
procmail: No match on "^FROM(_dot_)*(_at_)(_dot_)*veriohosting(_dot_)com"
procmail: No match on "^FROM(_dot_)*(_at_)(_dot_)*news@insider.ebay.com"
procmail: No match on "^FROM(_dot_)*(_at_)(_dot_)*monster(_dot_)com"
procmail: No match on "^FROM(_dot_)*(_at_)(_dot_)*westpac(_dot_)com(_dot_)au"
procmail: No match on "^FROM(_dot_)*(_at_)(_dot_)*fidelity(_dot_)com"
procmail: No match on "^From(_dot_)*(_at_)jobserve(_dot_)com"
procmail: No match on "^From(_dot_)*(_at_)(_dot_)*huxley(_dot_)co(_dot_)uk"
procmail: Match on ! "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)(_dot_)*ann(_at_)elastica(_dot_)com"
procmail: Locking "/usr/home/steffi/copynew.lock"
procmail: Assigning "LASTFOLDER=/usr/home/steffi/users/steffi/mail/robertsmail/copy.new" procmail: Opening "/usr/home/steffi/users/steffi/mail/robertsmail/copy.new"
procmail: Acquiring kernel-lock
procmail: Unlocking "/usr/home/steffi/copynew.lock"
procmail: No match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(- Resent)?)-To):(.*[^a-zA-Z])?)ann(_at_)elastica(_dot_)com"
procmail: Locking "/usr/home/steffi/filtmail.lock"
procmail: Executing "/usr/home/steffi/.filtmail/filtmail"
procmail: Unlocking "/usr/home/steffi/filtmail.lock"
procmail: Locking "/usr/home/steffi/copy.lock"
procmail: Assigning "LASTFOLDER=/usr/home/steffi/users/steffi/mail/robertsmail/copy"
procmail: Opening "/usr/home/steffi/users/steffi/mail/robertsmail/copy"
procmail: Acquiring kernel-lock
procmail: Unlocking "/usr/home/steffi/copy.lock"
procmail: Notified comsat: "steffi(_at_)2884096:/usr/home/steffi/users/steffi/mail/robertsmail/copy"
 Subject: Test
  Folder: /usr/home/steffi/users/steffi/mail/robertsmail/copy

_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail