2012-06-01 15 views
8

Ich versuche, ein einfaches Python-Skript für eine Linux-VPS zu erzeugen, die es mir ermöglichen, E-Mails zu empfangen (und dann kann ich in Python, wie es auf stdout drucken). Nichts ist komplexer als das.Erstellen Python E-Mail (empfangenden) Server

Ich möchte nicht eine "schwere" Lösung oder Server-Programm verwenden, ich bin wirklich nur nach einem einfachen Python-Skript, das ich ausführen kann, und ist in der Lage, Mail zu empfangen.

Wird Pythons 'smtpd-Modul für diese Aufgabe ausreichen? Ich habe bisher widersprüchliche Meinungen gehört. Wenn nicht, was würden Sie sonst vorschlagen? Vielleicht haben Sie selbst einen Code gehackt?

In diesem Stadium scheinen sogar Projekte wie lamson zu schwer (obwohl dies unvermeidlich sein kann, wenn ich keine bessere Lösung finden kann).

+0

Hier ein Beispiel mit smtpd ist: http://broadcast.oreilly.com/2008/10/pymotw-smtpd.html Wenn Sie nicht vorhaben, Ihre E-Mail-Server zu hosten öffentlich und es erfüllt Ihre Bedürfnisse, ich sehe kein Problem damit. – schlamar

Antwort

11

Pythons smtpd ist ausreichend.

Sie könnten auch wird helfen, voll einen Blick auf inbox.py und this example

+1

Danke. Das ist genau die Information, die ich suche. Als ich inbox.py gelesen habe, habe ich Folgendes gesehen: "Dies ist der einfachste SMTP-Server, den Sie jemals sehen werden. Eine Instanz sollte mehr als 1000 E-Mails pro Sekunde verarbeiten." Ich explodierte. –

6

Ja SMTPD Module nehmen wollen. 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()