2010-11-22 4 views
1

Ich portierte einige PHP-Anwendungen nach Python.Python smtplib langsamer als PHP mail()

Zu meiner Überraschung sank Leistung im Newsletter-Modul (100k + Abonnenten) um das Zehnfache. Ich habe etwas Overhead für die Verwendung von SMTP erwartet (ich denke, dass PHP sendmail direkt aufruft), aber nicht so viel.

Wie kann ich Pythons Mailzustellung beschleunigen?

EDITED: Für jeden, der diese Frage graben, löste ich diese celery mit 8 Arbeitern, um E-Mail im Hintergrund zu liefern, mit dieser Einstellung kann ich ungefähr 200K Nachrichten pro Stunde liefern. Sellerie integriert sich sehr gut mit Django und AMQP-Steinen.

Antwort

3

PHP mail() verwendet tatsächlich sendmail. Sie können dasselbe in Python tun, indem Sie es über subprocess aufrufen.

+0

Was dann? Einfach in msg.as_string() pipen? –

+0

Nach dem Aufruf mit den entsprechenden Optionen, sicher. –

+0

Übrigens, ich habe mich gerade für AMQP entschieden, aber danke, ich werde deine Antwort akzeptieren. –