Portál AbcLinuxu, 22. července 2025 15:37


Dotaz: Postfix a procmail, pridani X-Envelope

12.2.2009 10:55 Pheek | skóre: 24 | blog: io
Postfix a procmail, pridani X-Envelope
Přečteno: 295×
Odpovědět | Admin
Dobry den, potreboval bych vyresit problem s tim jak dosadit do hlavicky mailu informace z obalky mailu, a to X-Envelope From a X-Envelope To: . Pouzivam Postfix a procmail, nepomohl by mi nekdo prosim?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.2.2009 11:42 ext3fs
Rozbalit Rozbalit vše Re: Postfix a procmail, pridani X-Envelope
Odpovědět | | Sbalit | Link | Blokovat | Admin

Resil bych to pres Content filter, viz treba zde:

http://www.postfix.org/FILTER_README.html

Muzete si napsat dle toho odkazu jednoduchy skript, kteremu predate odesilatele a

prijemce z obalky. Jediny "problem" je umisteni radku X-... muzete ho dat hned jako prvni a nebo si s tim pohrat, akorat pozor na slozitejsi parsovani,aby to nemelo vliv na rychlost / zatez serveru.

 

12.2.2009 11:58 Pheek | skóre: 24 | blog: io
Rozbalit Rozbalit vše Re: Postfix a procmail, pridani X-Envelope
Ano to jsem nasel taky ale nemi mi moc jasne jak to udelat.
12.2.2009 12:23 Pheek | skóre: 24 | blog: io
Rozbalit Rozbalit vše Re: Postfix a procmail, pridani X-Envelope
Jeste upresnim ze to ma byt jen u prichozich mailu.
12.2.2009 13:18 Pheek | skóre: 24 | blog: io
Rozbalit Rozbalit vše Re: Postfix a procmail, pridani X-Envelope
Neni moc jasne jak by ten script mel vypadat aby do kazdeho mailu co prijde pridal z obalky do hlavicky mailu X-Envelope From: a X-Envelope To:
12.2.2009 15:28 ext3fs
Rozbalit Rozbalit vše Re: Postfix a procmail, pridani X-Envelope

Ja to resim nasledne:

(pokud bude potreba vysvetleni podam vecer, ted uz mam padla)

 

#!/bin/bash

# Konfigurace
SPOOL_DIR=/var/spool/filter
SENDMAIL="/usr/sbin/sendmail -G -i"
MY_DOMAIN="domena.cz"
NOUSER="nouser"

# Povolene site
IP[1]="192.168.1."
IP[2]="192.168.2."
IP[3]="192.168.3."

# Exit kody podle <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69

# odeslani zpet do fronty Postfixu
send_mail(){

    $SENDMAIL "$@" < $SPOOL_DIR/tmp.$$
}

# konec, uklid
rm_tmp(){

    rm -f $SPOOL_DIR/tmp.$$
    rm -f $SPOOL_DIR/in.$$

    exit 0
}

# parsovani argumentu prikazove radky
parse_opt(){

    let N=$#-1
    ARRAY=( "$@" )
    SENDMAIL_OPT="-f $2 --"
    IPADDR=${ARRAY[$N]}

    for ((X=3; X < N; X++))
    do
        STR=`echo -e\n ${ARRAY[$X]} | grep "@"`
        if [ -n "$STR" ]
            then
                SENDMAIL_OPT="$SENDMAIL_OPT $STR"
        fi
    done

}

    # osetreni signalu
    trap "rm_tmp" 0 1 2 3 15

    cat > $SPOOL_DIR/in.$$ || exit $EX_TEMPFAIL;

    parse_opt $@;

    # Filtrovani venkovni posty
    SENDER=$2
    DOMAIN=${SENDER##*@}
    USER=${SENDER%%@*}

    if [ "$DOMAIN" != "$MY_DOMAIN" ]
        then
            echo "X-EDP-Filter: Net [$IPADDR]" > $SPOOL_DIR/tmp.$$
            cat $SPOOL_DIR/in.$$ >> $SPOOL_DIR/tmp.$$
            send_mail $SENDMAIL_OPT;
            exit $?
    fi

    # Filtrovani posty s vlastni domenou
    IP_C=`echo $IPADDR | tr '.' ' ' | awk '{print $1"."$2"."$3"."}'`

    RET=`echo -e\n ${IP[*]} | grep $IP_C`

    if [ -n "$RET" ]
        then
            echo "X-MY-Filter: Yes [$IPADDR]" > $SPOOL_DIR/tmp.$$
        else
            echo "X-MY-Filter: No [$IPADDR]" > $SPOOL_DIR/tmp.$$
    fi

    cat $SPOOL_DIR/in.$$ >> $SPOOL_DIR/tmp.$$

    send_mail $SENDMAIL_OPT;

    exit $?

 

12.2.2009 16:54 Pheek | skóre: 24 | blog: io
Rozbalit Rozbalit vše Re: Postfix a procmail, pridani X-Envelope
Vyřešil jsem to takhle:

v /etc/postfix/main.cf: jsem přidal řádky
smtpd_recipient_restrictions = check_recipient_access pcre:/etc/postfix/recipient_access
smtpd_data_restrictions = check_sender_access pcre:/etc/postfix/sender_access
a vytvoříl souboru s obsahem:
/etc/postfix/sender_access:
/(.*)/ prepend X-Envelope-From: <$1>
/etc/postfix/recipient_access:
/(.*)/ prepend X-Envelope-To: <$1>

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.