2012-06-01 11 views
8

Sto provando a produrre un semplice script python per un VPS Linux che mi consenta di ricevere posta, (e quindi posso fare roba ad esso in python, come stamparlo su stdout). Niente di più complesso di quello.Creazione server Python Email (ricezione)

Non voglio usare una soluzione "pesante" o un programma server, sono davvero solo dopo un semplice script python che posso eseguire ed è in grado di ricevere posta.

Il modulo smtpd di Python sarà sufficiente per questa attività? Ho ascoltato opinioni contrastanti finora. In caso contrario, che altro suggeriresti? Forse hai hackerato insieme qualche codice?

In questa fase, anche i progetti come lamson sembrano troppo pesanti (anche se questo potrebbe essere inevitabile se non riesco a trovare una soluzione migliore).

+0

Ecco un esempio con smtpd: http://broadcast.oreilly.com/2008/10/pymotw-smtpd.html Se non avete intenzione di ospitare il vostro server di posta pubblicamente e soddisfa i tuoi bisogni, non vedo alcun problema con esso. – schlamar

risposta

11

Pythons smtpd è sufficiente.

Si potrebbe anche voler dare un'occhiata a inbox.py e this example

+1

Grazie. Questa è esattamente l'informazione che sto cercando. Quando ho letto inbox.py e ho visto questo "Questo è il server SMTP più semplice che tu abbia mai visto: un'istanza dovrebbe gestire oltre mille e-mail al secondo". Sono esploso. –

6

Sì smtpd modulo sarà aiuterà pieno. Example code is here:

import smtpd 
import asyncore 

class CustomSMTPServer(smtpd.SMTPServer): 

    def process_message(self, peer, mailfrom, rcpttos, data): 
     print 'Receiving message from:', peer 
     print 'Message addressed from:', mailfrom 
     print 'Message addressed to :', rcpttos 
     print 'Message length  :', len(data) 
     return 

server = CustomSMTPServer(('127.0.0.1', 1025), None) 
asyncore.loop()