Portál AbcLinuxu, 1. května 2024 08:42


Dotaz: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele

2.6.2010 21:17 Mirekh
spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
Přečteno: 255×
Odpovědět | Admin
na postovnim serveru s postfixem mam vytvoreny systemovy ucet test_ucet. Lokalni dorucovani posty na tento ucet funguje.

Avsak tento ucet je jenom proto, aby se po prichodu emailu spustil skript.

Hlavni veci co nevim je, ze ten skript se ma spoustet s parmatrem kterym ma by adresa odesilatele.

A tady nevim jak adresu odesilatele zjistit, jestli je ulozen v nejake systemove promenne nebo jestli se to urcit jinak

Je mi celkem jedno, jestli to bude pres maildrop, procmail nebo jen souborem .forward

Muzete te mi poradit ?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.6.2010 22:11 NN
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
Odpovědět | | Sbalit | Link | Blokovat | Admin
Urcite to vytahnes z logu postfixu, pripadne ze souboru konkretniho boxu.

NN
3.6.2010 07:07 Mirekh
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
jeste takto.

Na qmailu, ktery bezi ted na serveru je to udelano tak, ze v domovskem adresari uzivatele je soubor .qmail a v nem je

| ~/pokus.sh "$SENDER"

a to funguje, tedy ze ve scriptu mohu pracovat s parametrem, ve kterem je ulozena adresa odesilatele

Takto podobne bych to chtel i u postfixu. Da se to ?
3.6.2010 09:11 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
Horší řešení, než vámi popsané, by se hledalo asi těžko. V souborech s doručenou poštou navíc obálkový odesílatel nemusí už vůbec být uložen.
3.6.2010 09:09 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podívejte se na dokumentaci k local – pokud použijete .forward, jsou potřebné údaje uložené v proměnných prostředí.
3.6.2010 10:30 Mirekh
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
dobre,

na uvedenem odkazu je

SENDER The entire sender address.

pokud do .forward dam

| /home/user1/pokus.sh $SENDER

zacne se prichozi mail preposilat na adresu $SENDER@debian5.domain.name - to neni dobre

pokud ./forward bude

| "/home/user1/pokus.sh $SENDER"

- v logu postfixu je

delivered to command: /home/user1/pokus.sh $SENDER - at taky neni dobre

- muzete mi tedy rici jaka je spravna syntaxe ?
3.6.2010 11:59 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
Nedávejte ten parametr do spouštěného příkazu (nevím, zda se spouští přes shell, nebo přímo -- pravděpodobně přímo a expanze proměnných se nedělá), ale použijte ho přímo uvnitř skriptu pokus.sh.
3.6.2010 09:10 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
Odpovědět | | Sbalit | Link | Blokovat | Admin
V procmailu by to mělo jít. Adresy z hlaviček se dají vytahovat pomocí programu formail (přímo voláno z procmailového skriptu), na webu je spoustu příkladů.

Ale je to pěkná pakárna takový skript psát a ladit, procmail nemám rád.
3.6.2010 09:12 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
A uznávám, že v tom .forward to bude jednodušší.
3.6.2010 09:14 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
Při spouštění skriptu je snad vždy možné předat obálkové adresy buď jako parametr, nebo jsou uložené v proměnných prostředí. Tahat to z hlaviček e-mailu není dobrý nápad, protože tam může být úplně něco jiného než obálkový odesílatel či adresát.
cynic_asshole avatar 3.6.2010 17:00 cynic_asshole | skóre: 28
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proč nevyužít přímo možnosti postfixu? V souboru master.cf bych si vytvořil nový transport a v něm se adresa odesílatele předává pomocí ${sender}.
Neznáš nějakou linuxovou distribuci pro Windows?
3.6.2010 20:20 Mirekh
Rozbalit Rozbalit vše Re: spustit prikaz pri doruceni posty a zjistit adresu odesiltaele
jj, tak mne to funguje...

ve .forward

| "/home/user1/pokus.sh"

a ve scriptu lze pouzit napr. promenne $sender, $recipient apod.

Diky

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.