Newsletter mit PHP - was ist sinnvoll?

nh2

New Member
Hi,

ich möchte mit PHP nicht gerade kleine Newsletter (mit Anhängen bis 10 MB) an nicht gerade wenige Leute (bis 1000) schicken.
Dazu gibt es schon einiges im Internet und offensichtlich ist, dass ein einfaches, schleifenbasiertes PHP-Skript nicht in Frage kommt.

Es gibt in PEAR die Klassen Mail und Mail-Queue. Letztere sieht mir aber nach einem Workaround aus, da sie die Mails in Zeitabständen verschickt.

Welche Lösung ist wirklich sauber und performant (bzw. welche arbeitet mit dem MTA zusammen)? Habe ich irgendeinen Vorteil, wenn ich die Mails über SMTP sende oder ist sendmail besser geeignet?

Wie würdet ihr das machen?
Danke für eure Antworten!
 
Welche Lösung ist wirklich sauber und performant (bzw. welche arbeitet mit dem MTA zusammen)?
Schau dir einfach mal bestehende Skripte an, etwa phpList oder die Versandroutinen von Mailman (Python). Und mit dem MTA müssen alle Lösungen zusammenarbeiten. Im Prinzip kannst du die Mails einfach direkt und ohne Pause bei deinem MTA einkippen. Den Rest übernimmt dann dessen (hoffentlich gut implementierte) Warteschlange.

Habe ich irgendeinen Vorteil, wenn ich die Mails über SMTP sende oder ist sendmail besser geeignet?
Bei der Nutzung des Sendmail-Wrappers deines Systems sparst du dir den TCP/IP-Overhead für die Verbindung zu deinem MTA. Das funktioniert aber offensichtlich nur dann, wenn der MTA auch auf dem gleichen System läuft.

Wie würdet ihr das machen?
Ich würde an erster Stelle keine derart großen Dateien per E-Mail verschicken. Dafür gibt es bessere Protokolle.
 
Ich würde an deiner Stelle die Anhänge durch einen Download-Link ersetzen. Das hat folgende Vorteile:

1) Du nervst niemanden mit ewig langer Ladezeit
2) Du kannst sicher sein, dass das Postfach des Empfängers nicht überfüllt wird, was zur Rücksendung der Mail führen würde (Traffic und Postfach-Grösse auf deinem Server)
3) Bei manchen Servern werden zu grosse Anhänge grundsätzlich abgewiesen

=> Setz lieber nen Link rein und schon kannst du (fast) jedes Newsletter-Skript verwenden das dir in den Sinn kommt. Oder gibt es Gründe warum du die Anhänge direkt mitsenden musst/willst? Wäre interessant zu wissen welche Gründe das wären.

Schönen Samstag...
 
Im Prinzip kannst du die Mails einfach direkt und ohne Pause bei deinem MTA einkippen. Den Rest übernimmt dann dessen (hoffentlich gut implementierte) Warteschlange.
...
Bei der Nutzung des Sendmail-Wrappers deines Systems sparst du dir den TCP/IP-Overhead für die Verbindung zu deinem MTA. Das funktioniert aber offensichtlich nur dann, wenn der MTA auch auf dem gleichen System läuft.

Selbst wenn der eigentliche Mailserver nicht auf dem gleichen System läuft, würde ich für die Newsletter Mails lokal einen MTA einrichten, welcher dann den eigentlichen Mailserver als Smarthost nutzt.
Ich würde mal behaupten, es dürfte generell sehr schwer werden ein Script zu finden, dass das Ganze besser handhabt als ein MTA (egal ob nun Exim, Postfix, QMail oder sonst was). :)
 
Selbst wenn der eigentliche Mailserver nicht auf dem gleichen System läuft, würde ich für die Newsletter Mails lokal einen MTA einrichten, welcher dann den eigentlichen Mailserver als Smarthost nutzt.
Das bringt dir bezüglich des TCP/IP bzw. SMTP-Overheads genau was?
 
Was den TCP/IP und SMTP Overhead angeht nichts.
Aber ich halte es für sinnvoller die Queueverwaltung einem MTA zu überlassen, als sie in irgendeinem Tool oder Script selbst zu implementieren.

Hier sollen Mails mit PHP versendet werden. PHP eignene Funktionen und Optionen sind nicht wirklich dafür brauchbar um eine Queue eines MTA nachzubauen. Also würde ich die Mails (wie du bereits angesprochen hattest) aus dem PHP Script doch lieber lokal auf den MTA drauf feuern und ihn die Arbeit machen lassen.
Das dürfte performanter sein als das in einem PHP Script zu verarbeiten. :)
 
Welche Lösung ist wirklich sauber und performant (bzw. welche arbeitet mit dem MTA zusammen)?

Swift Mailer - A free feature-rich PHP Mailer

Über Performance kann ich nicht so viel sagen, außer dass Swift einwandfrei Mails (auch mit Anhängen) mit
- HTML-Inhalten und
- reinem Text
verschickt. Dabei benutzt es nicht die Funktion "mail()" sondern arbeitet mit dem MTA zusammen:
swiftmailer.org said:
Swift is a fully OOP library for sending e-mails from PHP websites and applications. It does not rely on PHP's native mail() function which is known for using high server resources when sending multiple emails. Instead, Swift communicates directly with an SMTP server or a MTA binary to send mail quickly and efficiently.

Ich und ein Freund benutzen das Skript für die Schiedsrichtersuche, allerdings werden dort nicht 1.000 Mails innerhalb einer kurzen Zeitspanne generiert, sondern nur mehrere Mails am Tag, da alle Gesuche auch direkt an alle Schiedsrichter (ca. 60) versendet werden. Dazu kommen noch die Neuanmeldungen, die aber nicht so häufig vorkommen.

Gruß
Claus
 
Back
Top