Nekromanti Procmail-hjälp...

krank

Lättkränkt cancelkultur-kommunist
Joined
28 Dec 2002
Messages
36,364
Location
Rissne
Okej, här har vi kanske årets hittills mest osannolika trådstart att få hjälp med. Eller har vi många sysadmins och Linux/Unixwizards här?

Alltså, jag sitter och gör lite efterforskningar om procmail. Det är nämligen som så, att den programvara jag använder för att sköta initiativet i D&D enbart kan exportera genom att skicka en XML-fil som attachment till ett mail (filen heter alltid DMtools.xml, jag kan dock skriva mailets innehåll och titel själv). Och den kan bara importera genom att läsa från en URL.

Så, det säger sig självt att varje halvkompetent linuxadmin med självkänsla omedelbart tänker: "Aha! Så om jag kan få procmail att extrahera xml-filen och lägga den i en mapp som är synlig via webservern, och kanske lägga filen i en mapp som heter samma sak som står i mailets titel, så är Bob din morbror!".

Så... Det här receptet för procmail ger mig den första delen (filtrera mailet, få ut filen).

Men, jag skulle behöva läsa in mailets titel i en variabel, utan att för den delen filtrera titeln på något sätt, och sedan använda denna variabel när jag säger åt munpack var den ska lägga min fil.

Det där sista är alltså där jag kört fast.

Så, *nixtrollkarlar därute, några tips? =)
 

Tony.Meijer

Ärketeknomantiker
Joined
14 Sep 2009
Messages
1,887
Location
Uppsala
Okey, det här är ju lite trixigt förstås, men något i still med följande kanske hjälper:

SUBJECT=`formail -zx "Subject:"`
filtrera mailet
|mkdir $SUBJECT; flyta filen
 

Kimon

Swordsman
Joined
21 Nov 2001
Messages
679
Location
Uppsala
Nu är inte jag någon expert på procmail men...

Jag är inte helt säker på att procmailrc stödjer "process substitution" a'la bash. Och om pipe tecknet skickar stdin till mkdir (som i ett riktigt shell) så kommer mkdir att äta upp den.

Jag skulle nog prova med att skriva ett script och låta detta script göra det som behövs.

Nu är jag ingen expert på bash heller, men nåt i den här stilen:

<div class="ubbcode-block"><div class="ubbcode-header">Code:</div><div class="ubbcode-body ubbcode-pre" ><pre>
#!/bin/bash
#
#
PROG=$( basename $0 )
TMPFILE=/tmp/$PROG.$$

# Spara mailet i tempfil
#
cat - >$TMPFILE

# Fånga mailets titel i variabeln SUBJECT
#
SUBJECT=$( sed -n 's/^Subject: //p' $TMPFILE | head -n 1 )
[ -z "$SUBJECT" ] && SUBJECT=NO_SUBJECT.$$

# Packa upp den bifogade filen i <katalognamn>.
#
mkdir -p <katalognamn>
munpack -q -C "<katalognamn>/$SUBJECT" $TMPFILE

# Ta bort tempfil
#
rm -f $TMPFILE

exit
</pre></div></div>
 
Top