Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Parsare una mail o un file di testo

    Salve ragazzi,
    ho un problema che penso sia abbastanza comune ma non sono ancora riuscito a risolvere:
    devo parsare una mail ed estrarre l'indirizzo mittente e altri dati come per esempio il subject. Queste mail sono salvate sequanzialmente in un file di testo (in linux sotto /var/mail/"mana" dove mana è un file formattato appositamente e leggibile con un semplice editor di testo) e quindi eventualmente dovrei parsare semplicemente iun file di testo.

    Avete qualche consiglio?
    Grazie, ciao, ciao...

    es file:


    From mana@darkstar.example.net Thu Oct 13 22:31:53 2005
    Return-Path: <mana@darkstar.example.net>
    Received: from darkstar.example.net (localhost [127.0.0.1])
    by darkstar.example.net (8.13.4/8.12.11) with ESMTP id j9DKVrFA002610
    for <mana@darkstar.example.net>; Thu, 13 Oct 2005 22:31:53 +0200
    Received: (from mana@localhost)
    by darkstar.example.net (8.13.4/8.12.11/Submit) id j9DKVouH002609
    for mana@localhost; Thu, 13 Oct 2005 22:31:50 +0200
    Date: Thu, 13 Oct 2005 22:31:50 +0200
    From: luca <mana@darkstar.example.net>
    Message-Id: <200510132031.j9DKVouH002609@darkstar.example.ne t>

    ciao

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Hai provato a configurare fetchmail in modo da richiamare procmail? Tramite questo programma puoi estrarre tutti i dati che ti servono direttamente appena fetchmail scarica la mail e passarli ad un tuo programma (eventualmente) in pipe.

    Prova a dare un'occhiata a questi HOWTO:
    Fetchmail
    Procmail
    li ho trovati interessanti e semplici, nonché facili da configurare e modificare. Io li ho utilizzati proprio per poter filtrare delle mail e passarle ad un mio programma scritto in C che estrae l'allegato codificato Base64.


    La configurazione di procmail richiede un minimo di conoscenza delle RegExp, ma alla fine del HOWTO c'è anche una brevissima spiegazione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Di quale linguaggio di programmazione stiamo parlando?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4

    linguaggio

    scusatemi per la mancanza, parliamo di c (ansi c) standard posix...
    Stiamo cercando di fare una gestione remota di una macchina tramite mail, l'applicazione controlla una casella di posta elettronica a intervalli regolari e esegue dei comandi nella shell, creando una risposta sempre via e-mail.
    Il nostro problema ora è di estrarre il comando dal corpo della mail.
    Poi successivamente dovremmo scartare le mail che non hanno un particolare subject e non ultimo, controllare anche la firma digitale del messaggio, per esigenze di sicurezza..

    Grazie della collaborazione

    ps : avete un esempio di parser per file di testo fatti in c? Qui tutto è bene accetto :master:

  5. #5

    Re: Parsare una mail o un file di testo

    In C una cosa così è piuttosto lunghetta
    Volendo puoi partire da questo script (piuttosto rozzo, ma ora son di fretta ) che ti estrapola l'indirizzo mail da file e lo richiami all'interno del tuo programma principale come system call ad eseguibile esterno
    codice:
    #!/usr/bin/python
    
    mail = open('/tmp/mail.txt')
    data = mail.read()
    spl = data.split('From ')
    final = str(spl).split(' ')
    print final[1]   #final[1] contiene qualcuno@qualcosa.boh
    Ovviamente il file contente i log dev'essere uguale a quello che hai pastato qui
    Ci aggiungi i parametri che servono a te, lo metti in un ciclo e in una ventina di righe max fa tutto quello che ti serve

  6. #6
    PyPower. Un po' come la benzina...
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.