/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Inspiration til valg af sprog/omgivelser t~
Fra : Mads Bondo Dydensbor~


Dato : 29-09-07 20:23

Hej

Jeg leder efter lidt inspiration til hvad man burde vælge af sprog/moduler
til nedenstående lille opgave, som jeg bare vil løse så nemt for mig som
muligt. Det er noget med håndtering af email attachments, og det har sgisme
altid være lidt magi for mig, hvordan det nemmest skulle virke

Her er situationen:

En bruger modtager nogle mails med en dælens masse attachments, oftest af
typen doc, xls, pdf, tif, gif, dvs. dokumenter eller billeder. Brugeren vil
oftest skrive skidtet ud. De mange bilag har det problem, at de ikke er
mærket med "hvad de er". Så, ideen er at give brugeren mulighed for at
forwarde emailen til en bestemt mail adresse (stempel@example.org), som så
laver dem alle sammen til pdf og stempler deres filnavn på hver side,
hvorefter der bliver sendt en email til brugeren med de nu stemplede bilag.

Jeg har allerede software (well, tre bashscripts, really) til at lave de
forskellige ting til pdf (open office makroting, der kan kaldes fra
kommandolinien) og stemple dem, så det er mest email håndteringen der er
lidt åben ended for mig. (Iøvrigt, hvis nogen kender en bedre måde at lave
batch konvertering af doc filer til pdf end open office, så sig endelig
til).

Valget er email er alene for at gøre det nemt for brugeren. Det er ikke
interessant at lave det som shell program, eller web service, eller noget i
den stil. Det er email der er interessant.

Software på serveren der skal lave konverteringen er
- kubuntu 7.04
- exim
- hvad man ellers har, inklusiv procmail, formail, perl, whatever

Min overordnede tanke er at oprette en bruger med den relevante adresse,
køre igennem procmail, kalde ud til et program der udtrækker alle
attachments (evt. kun bestemte typer) og gemmer dem under deres navne i et
temp katalog (eller på anden måde bevarer attachmentets navn) sammen med
subject og afsender. Derefter køres et script på dem, der laver dem om til
pdf og stempler dem. Derefter samles de nye attachments i en ny mail, der
udfyldes med en eller anden standard tekst, og sendes til den oprindelige
afsender.

Men, jeg er lidt i tvivl om hvilket sprog der er bedst til at håndtere det -
særligt det der med at trække attachments ud. For mig står valget nok
imellem perl, c, c++, bash og c# (men ikke Python f.eks, som jeg slet ikke
styrer). Procmail skriver ud på stdout, så ... hvad er jeres bud? Har perl
nogle nifty moduler til at parse og bearbejde emails (ser ud til at være
alt for mange). Eller nogle andre anbefalinger? Også gerne til den
overordnede ide (pånær det med email interfacet).

Mvh

Mads

--
Mads Bondo Dydensborg mads@dydensborg.dk http://www.madsdydensborg.dk/

There are many gods which Christians reject. I just believe in one less god
then they do. The reasons that you might give for your atheism toward the
Roman gods are likely the same reasons I would give for not believing in
Jesus.
- Dan Barker


 
 
Adam Sjøgren (29-09-2007)
Kommentar
Fra : Adam Sjøgren


Dato : 29-09-07 21:38

On Sat, 29 Sep 2007 21:22:54 +0200, Mads wrote:

> Jeg har allerede software (well, tre bashscripts, really) til at lave de
> forskellige ting til pdf (open office makroting, der kan kaldes fra
> kommandolinien) og stemple dem, så det er mest email håndteringen der er
> lidt åben ended for mig.

En hurtig/direkte måde er at bruge munpack(1) til at pakke filerne ud af
email'en og så sende de resulterende pdf'er med mutt(1)s
kommandolinie-option -a.

Jeg tror jeg ville klistre de dele sammen med lidt scripts frem for at
finde ud af hvilket programmeringssprog understøtter MIME bedst.

(Jeg har brugt MIME::Lite i Perl til at konstruere emails med
vedhæftninger uden problemer, men hvilket modul er godt at parse med og
om der er nogle bedre, har jeg ikke overblik over).

munpack ligger i pakken "mpack" - måske i øvrigt at mpack(1) kan bruges
i stedet for mutt til at lave og sende svarene med; om den er
bedre/smidigere end mutt ved jeg ikke.


Mvh.

Adam

--
"riverrun, past Eve and Adam's, from swerve of shore Adam Sjøgren
to bend of bay, brings us by a commodius vicus of asjo@koldfront.dk
recirculation back to Howth Castle and Environs."

Mads Bondo Dydensbor~ (30-09-2007)
Kommentar
Fra : Mads Bondo Dydensbor~


Dato : 30-09-07 11:10

Adam Sjøgren wrote:

> On Sat, 29 Sep 2007 21:22:54 +0200, Mads wrote:
>
>> Jeg har allerede software (well, tre bashscripts, really) til at lave de
>> forskellige ting til pdf (open office makroting, der kan kaldes fra
>> kommandolinien) og stemple dem, så det er mest email håndteringen der er
>> lidt åben ended for mig.
>
> En hurtig/direkte måde er at bruge munpack(1) til at pakke filerne ud af
> email'en og så sende de resulterende pdf'er med mutt(1)s
> kommandolinie-option -a.

Ah, munpack ligner noget rigtigt godt. Jeg fik fat et perl modul i går, jeg
sad og rodede med (use MIME::Explode), men det var noget mere besværligt,
synes jeg sådan lige umiddelbart.

De filnavne munpack laver er lidt tricky dog, idet de bevarer en eller anden
form for indkoding, som jeg egentlig godt kunne tænke mig at køre over i
noget utf8 noget. Et eksempel, i email står:

Content-Disposition: attachment;
filename="=?iso-8859-1?Q?1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=
F8rin?=
=?iso-8859-1?Q?g_i_LBR=2Edoc?="

og, det bliver, så vidt jeg kan se, til følgende filnavn:

=Xiso-8859-1XQX1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=F8rinX=XX=Xiso-8859-1XQXg_i_LBR=2EdocX=

Det er lidt uden for det jeg gerne vil - jeg ville gerne have en pæn utf8
ting, egentlig, noget i den her stil :

"1. Beskæftigelsesplan 2008 version 5 - efter høring i LBR.doc"

Nogen ideer til det? Jeg tænker på om der findes software til at decode den
slags til utf8? Jeg kan godt se at jeg nok bliver nødt til at lave replace
på nogen =X, og XQX'er, men hvis jeg kan få bokset den ned til det der stod
i filename, så ville det jo være meget fint, hvis der var noget der kunne
lave det til en utf8 ting for mig. (Når jeg ikke bare laver utf8 selv, er
det fordi jeg er lidt i tvivl om de attachments jeg modtager kunne finde på
at være noget andet end iso-8859-1 til at starte med).

Jeg har testet med at lave et andet filnavn i email, men munpack
substituerer med X for alle danske tegn, f.eks., så det virker som en lidt
deadend.

>
> Jeg tror jeg ville klistre de dele sammen med lidt scripts frem for at
> finde ud af hvilket programmeringssprog understøtter MIME bedst.
>
Nårh ja, bash er jo også en slags programmeringssprog

Jeg holder mig såmænd gerne til bash - de andre ting er alligevel skrevet i
det, så det er fint nok.

> (Jeg har brugt MIME::Lite i Perl til at konstruere emails med
> vedhæftninger uden problemer, men hvilket modul er godt at parse med og
> om der er nogle bedre, har jeg ikke overblik over).

Ja, det er også det der parse der er lidt bøvlet for mig. Den der
MIME::Explode virkede egentlig ok, men har også bøvl med filnavnene.

>
> munpack ligger i pakken "mpack" - måske i øvrigt at mpack(1) kan bruges
> i stedet for mutt til at lave og sende svarene med; om den er
> bedre/smidigere end mutt ved jeg ikke.

mpack ser fin ud til formålet. At sende mails med attachment havde jeg nu
regnet med ville være rimeligt nemt under alle omstændigheder, men det er
superlækkert med et så simpelt program til det, faktisk.

Nogen ideer til den der dekodning af filnavn?

Mvh & tak for hjælpen,

Mads

--
Mads Bondo Dydensborg mads@dydensborg.dk http://www.madsdydensborg.dk/

You may not use the Software in connection with any site that disparages
Microsoft, MSN, MSNBC, Expedia, or their products or services, infringe any
intellectual property or other rights of these parties, violate any state,
federal or international law, or promote racism, hatred or pornography.
- Part of MS Frontpage 2002 EULA


Michael Rasmussen (30-09-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 30-09-07 11:51

On Sun, 30 Sep 2007 12:10:23 +0200
Mads Bondo Dydensborg <madsdyd@challenge.dk> wrote:

> =Xiso-8859-1XQX1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=F8rinX=XX=Xiso-8859-1XQXg_i_LBR=2EdocX=
> Nogen ideer til den der dekodning af filnavn?
>
Er filnavnet ikke blot indkodet i enten base64 eller quoted printable?

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.

Kent Friis (30-09-2007)
Kommentar
Fra : Kent Friis


Dato : 30-09-07 12:01

Den Sun, 30 Sep 2007 12:50:52 +0200 skrev Michael Rasmussen:
> On Sun, 30 Sep 2007 12:10:23 +0200
> Mads Bondo Dydensborg <madsdyd@challenge.dk> wrote:
>
>> =Xiso-8859-1XQX1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=F8rinX=XX=Xiso-8859-1XQXg_i_LBR=2EdocX=
>> Nogen ideer til den der dekodning af filnavn?
>>
> Er filnavnet ikke blot indkodet i enten base64 eller quoted printable?

Det der er quoted printable. Almindelige ascii tegn, med alt udenfor
ascii encodet som "=" efterfulgt af to hex-cifre.

Base64 er slet ikke læseligt.

Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).

Mads Bondo Dydensbor~ (30-09-2007)
Kommentar
Fra : Mads Bondo Dydensbor~


Dato : 30-09-07 12:08

Michael Rasmussen wrote:

> On Sun, 30 Sep 2007 12:10:23 +0200
> Mads Bondo Dydensborg <madsdyd@challenge.dk> wrote:
>
>>
=Xiso-8859-1XQX1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=F8rinX=XX=Xiso-8859-1XQXg_i_LBR=2EdocX=
>> Nogen ideer til den der dekodning af filnavn?
>>
> Er filnavnet ikke blot indkodet i enten base64 eller quoted printable?
>

Jow, det tror jeg du har ret i. Ovenstående er efter at munpack har været så
venlig at fjerne de tegn den ikke kan lide.

Men, hvordan decoder man iøvrigt quoted-printable, så?

Mvh & tak for hjælpen

Mads

--
Mads Bondo Dydensborg mads@dydensborg.dk http://www.madsdydensborg.dk/

They that can give up essential liberty to obtain a little temporary safety
deserve neither liberty nor safety.

- Ben Franklin, Historical Review of Pennsylvania, 1759


Michael Rasmussen (30-09-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 30-09-07 12:00

On Sun, 30 Sep 2007 12:10:23 +0200
Mads Bondo Dydensborg <madsdyd@challenge.dk> wrote:

> =Xiso-8859-1XQX1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=F8rinX=XX=Xiso-8859-1XQXg_i_LBR=2EdocX=
>
>
> Nogen ideer til den der dekodning af filnavn?
>
Det er quoted printable, dog er der kommet noget snask ind. Burde have
følgende udseende:
1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=F8ring_i_LBR=2Edoc
Test selv her: http://www.motobit.com/util/quoted-printable-decoder.asp

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.

Mads Bondo Dydensbor~ (30-09-2007)
Kommentar
Fra : Mads Bondo Dydensbor~


Dato : 30-09-07 12:07

Michael Rasmussen wrote:

> On Sun, 30 Sep 2007 12:10:23 +0200
> Mads Bondo Dydensborg <madsdyd@challenge.dk> wrote:
>
>>
=Xiso-8859-1XQX1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=F8rinX=XX=Xiso-8859-1XQXg_i_LBR=2EdocX=
>>
>>
>> Nogen ideer til den der dekodning af filnavn?
>>
> Det er quoted printable, dog er der kommet noget snask ind. Burde have
> følgende udseende:
> 1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=F8ring_i_LBR=2Edoc

Ja, men er det ikke sådan, at der er en standard for at specificere
tegnsættet i sådanne enkeltstående strenge? Og, er det ikke det der ligger
i det der iso-snask i starten?

Det der iøvrigt sker i ovenstående er at det er angivet i noget
tilnærmelsesvis meningsfuldt i selve mailen (som formentlig er formatteret
af en outlook/exchange combo), men at munpack lige vipper nogle tegn
(f.eks ?) til X undervejs.

Men, selv hvis jeg havde en "ren" quoted printable med starten =?iso-snask,
hvad kunne jeg så bruge til at dekode den med på en linux kasse? (til utf8,
det er jo nemt nok at decode den til 8bit ascii).

> Test selv her: http://www.motobit.com/util/quoted-printable-decoder.asp

He! Den fandt jeg også på wikipedia i går, men det hjælper mig jo ikke
rigtigt, hvis jeg sidder på en linux kasse og ikke lige synes jeg vil
screenscrape en web server for at få oversat en linie til utf8

Mvh

Mads

--
Mads Bondo Dydensborg mads@dydensborg.dk http://www.madsdydensborg.dk/

Value your freedom, or you will lose it, teaches history. "Don't bother us
with politics," respond those who don't want to learn.

- Free software proponent, Richard M. Stallman


Michael Rasmussen (30-09-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 30-09-07 14:40

On Sun, 30 Sep 2007 13:07:03 +0200
Mads Bondo Dydensborg <madsdyd@challenge.dk> wrote:

> Men, selv hvis jeg havde en "ren" quoted printable med starten
> =?iso-snask, hvad kunne jeg så bruge til at dekode den med på en
> linux kasse? (til utf8, det er jo nemt nok at decode den til 8bit
> ascii).
>
man iconv

1) lav en metode findTegnKode der return tegnkodning
2) lav en sanitizer der returnerer en renset quoted printable streng
3) iconv --from-code=findTegnKode(streng) --to-code=utf-8
--output=file.utf-8 sanitize(streng)

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.

Michael Rasmussen (30-09-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 30-09-07 15:05

On Sun, 30 Sep 2007 13:07:03 +0200
Mads Bondo Dydensborg <madsdyd@challenge.dk> wrote:

> Men, selv hvis jeg havde en "ren" quoted printable med starten
> =?iso-snask, hvad kunne jeg så bruge til at dekode den med på en
> linux kasse? (til utf8, det er jo nemt nok at decode den til 8bit
> ascii).
>
Glemte lige konvertering fra printed quotable til ascii:
1) installer metamail -> apt-get install metamail (burde være default
installeret)
mimencode -q -u -o ascii-file mime-file
2) installer libmime-perl
perl -pe 'use MIME::QuotedPrint; $_=MIME::QuotedPrint::decode($_);' <
mime-file


--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.

Adam Sjøgren (30-09-2007)
Kommentar
Fra : Adam Sjøgren


Dato : 30-09-07 18:25

On Sun, 30 Sep 2007 12:10:23 +0200, Mads wrote:

> De filnavne munpack laver er lidt tricky dog, idet de bevarer en eller anden
> form for indkoding, som jeg egentlig godt kunne tænke mig at køre over i
> noget utf8 noget. Et eksempel, i email står:

> Content-Disposition: attachment;
> filename="=?iso-8859-1?Q?1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=
> F8rin?=
> =?iso-8859-1?Q?g_i_LBR=2Edoc?="

> og, det bliver, så vidt jeg kan se, til følgende filnavn:

> =Xiso-8859-1XQX1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=F8rinX=XX=Xiso-8859-1XQXg_i_LBR=2EdocX=

Den ligner umiskendeligt rfc 2047 encoding:
<http://www.faqs.org/rfcs/rfc2047.html>

> Nogen ideer til det?

Ikke umiddelbart, andet end at forbedre munpack så den kan afkode rfc
2047 ordentligt.

>> (Jeg har brugt MIME::Lite i Perl til at konstruere emails med
>> vedhæftninger uden problemer, men hvilket modul er godt at parse med og
>> om der er nogle bedre, har jeg ikke overblik over).

> Ja, det er også det der parse der er lidt bøvlet for mig. Den der
> MIME::Explode virkede egentlig ok, men har også bøvl med filnavnene.

Det er nok nemmere at fikse dem i et perl-script end i munpack - modulo
hvor glad man er for C vs. perl

> Nogen ideer til den der dekodning af filnavn?

Der må findes biblioteker til den slags(tm). Om ikke andet kan du snuppe
funktionen fra Gnus og oversætte den til noget andet end elisp


Mvh.

Adam

--
"Just the words?" What a terrible to thing to say Adam Sjøgren
about writing! asjo@koldfront.dk

Mads Bondo Dydensbor~ (30-09-2007)
Kommentar
Fra : Mads Bondo Dydensbor~


Dato : 30-09-07 18:34

Adam Sjøgren wrote:

>
>>
=Xiso-8859-1XQX1=2E_Besk=E6ftigelsesplan_2008_version_5_-_efter_h=F8rinX=XX=Xiso-8859-1XQXg_i_LBR=2EdocX=
>
> Den ligner umiskendeligt rfc 2047 encoding:
> <http://www.faqs.org/rfcs/rfc2047.html>

Det tror jeg også jeg endte på. Havde jeg bare vidst det fra starten - eller
stillet det rigtige spørgsmål . Og, biblioteket til at styre det, bliver
så Encode::MIME::Header

> Det er nok nemmere at fikse dem i et perl-script end i munpack - modulo
> hvor glad man er for C vs. perl

Hehe, det ender sgu altid med perl - hacker sproget par excellence. Jeg har
droppet munpack, og bruger istedet MIME::Explode;

Det begynder at ligne noget!

Tak for hjælpen.

Mvh

Mads

--
Mads Bondo Dydensborg mads@dydensborg.dk http://www.madsdydensborg.dk/

I don't say this lightly. However, I really think that the U.S. no longer
is classifiable as a democracy, but rather as a plutocracy.
- H. Peter Anvin


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste