[Python] email receiver in python

Manlio Perillo manlio.perillo a gmail.com
Ven 31 Gen 2014 20:25:19 CET


On 31/01/2014 19:35, Balan Victor wrote:
> [...]
> come farei a renderlo abbastanza stabile e robusto da non rischiare di
> perdere mail?
>
>     Personalmente non investirei troppo su asyncore. Per il resto,
>     dipende dalla tua definizione di "contemporaneo".
>
>
> nel senso che se mi arrivano due richieste nello stesso istante vengono
> processate entrambe, va bene anche in sequenza. L'importante che nessuna
> delle venga scartata.
>

Qualsiasi mail server serio gestisce una marea di problematiche.
In particolare le mail non processate sono salvate in una coda.

Che succede al tuo mailserver Python se il sistema va in crash mentre 
sta processando una mail?

Comunque riguardo lo scartare le email, si devono fare delle precisazioni.
Quando invii una mail ad un altro sistema ci possono essere molti 
problemi nel cammino di mezzo in cui ne il sistema che invia la mail ne 
quello che riceve può fare niente.  Questo a meno che il client che 
invia la mail non si connetta direttamente al server che le deve ricevere.

> [...]
>
> Senza dubbio un componente come postfix decentemente configurato sarebbe
> meglio però ripeto, non ho bisogno di tutta questa "complessità".
> Installare e configurare un sever postfix solo per eseguire uno script
> per ogni mail(in media 100 al giorno) che ricevo mi sembra come
> comperare una bici da corsa che costa 15000euro per andare a fare il
> giro la domenica in cittadella.
>

Non esageriamo ;-).
Una ottima bici da corsa costa 3500 euro, ma già con 2500 euro ne compri 
una più che buona.

>     Ma un mail server di norma è già installato su un sistema UNIX, dato
>     che devi gestire la posta interna (ad esempio generata da logcheck o
>     simili).
>
> Si però mi risulta che sta in ascolto solo sulla loopback e non possa
> ricevere da altri server.
>

Non è questo il problema.
Intendevo dire che il mail server è già installato e configurato in modo 
adeguato.  Comunque sul mio sistema Postfix è in ascolto su tutte le 
interfacce di rete attive (default di Postfix).

>     Forse mi sono perso qualcosa, ma in che modo un mail server scritto
>     interamente in Python risolve questo problema?
>     Con un mail server il single point of failure si risolve aggiungendo
>     record MX addizionali e facendoli gestire da server separati.
>
> come scritto sopra ho usato in maniera sbagliata "single point of
> failure". Intendevo dire che se per qualche motivo il mio sistema manda
> la mail e io no la ricevo so dove andare a cercare il problema, e in
> fretta, senza spulciare log e impostazioni varie.
>

Vedi quanto ho scritto sopra.

Comunque, se i due sistemi sono in connessione diretta, se il client 
invia ovviamente il server riceve; i problemi possono essere altri tipo 
un crash nel client o nel server.

Se i due sistemi non sono in connessione diretta, dubito seriamente tu 
sappia dove andare a cercare il problema in fretta...



Ciao  Manlio


Maggiori informazioni sulla lista Python