Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

PHP mail() oder sendmail

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
panna
PostRank 1
PostRank 1
Beiträge: 11
Registriert: 10.09.2009, 06:52

Beitrag von panna » 10.09.2009, 07:02

Habe mir in der letzten Zeit ein kleines Newsletter Script geschrieben welches auch prima läuft. Da ich mir nun nicht sicher bin was ich zum versenden nutzen soll

PHP mail() Funktion oder sendmail?

frage ich mal offen in die Runde nach Erfahrungen und Vor- und Nachteile.

Mein Hoster 1und1 und ~ 2000 Newsletter User

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 10.09.2009, 08:13

panna hat geschrieben:PHP-mail()-Funktion oder sendmail?
Wenn du es kompliziert haben willst, benutze sendmail direkt. Wenn du es einfach haben willst, benutze die PHP-eigene Schnittstelle zu sendmail, mail() (lies: mail() macht nichts anderes, als sendmail aufzurufen).

Verschickst du deine Post mit nur wenigen, nach Domain geordneten, oder sogar nur einem Aufruf, kannst du dem Mailsystem übrigens die Arbeit erleichtern, weil es dann die empfangenden Server, so möglich, zusammenfassen kann und nicht jede Adresse einzeln abklappern muss.

panna
PostRank 1
PostRank 1
Beiträge: 11
Registriert: 10.09.2009, 06:52

Beitrag von panna » 10.09.2009, 08:34

Habe mir schon sowas in die Richtung gedacht, nur nicht nach TLD zu ordnen und dann zu versenden.
Also vorher sortieren nach TDL und dann am Stück 50 oder 100 Mail versenden?!
Bin vor geraumer Zeit mal auf einen Fehler aus der mySQL gestoßen "MySQL server has gone away". Dieser erschiem nach dem versenden und hat mir das Ergebnis (wieviele versendet wurden etc.) nicht in die db geschrieben.

Anonymous

Beitrag von Anonymous » 10.09.2009, 11:30

ich würde eine der Classes für den Mailversand nehmen die es so gibt... da bekommste dann auch Mails hin die in keinem Spamfilter landen und direkt per SMTP vom Mailserver für die domain verschickt werden... bei direkt per mail() versendete Mails hat man teilweise das Problem das sie als automatisch versendete Mails erkannt werden und in Spamfilter landen..

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 10.09.2009, 12:20

panna hat geschrieben:Also vorher sortieren nach TDL
Du solltest schon auf der zweiten Ebene zusammenfassen, also example.com, web.de, gmx.net usw. Der Sinn der Aktion ist, dass statt 10 Kopien an denselben Mailserver nur eine Kopie mit 10 Empfängeradressen übermittelt werden muss.
Hast du zum Beispiel 100 Empfänger bei GMX, dann ist es möglich, dass dein Mailserver den Inhalt nur einmal an GMX übermittelt und (im SMTP-Umschlag) die 100 Empfänger drüberschreibt. Die Aktion geht somit gut und gerne hundertmal schneller über die Bühne.

Das geht aber halt nur, wenn dein Mailserver die Empfänger en bloc bekommt und nicht zeitlich versetzt in x Sätzen wild durcheinander.
und dann am Stück 50 oder 100 Mail versenden?!
Nö. Ich würde glatt erstmal versuchen, mail() alle 2000 Adressen auf einmal aufs Auge zu drücken - dann muss vorher auch nicht sortiert werden.

Sollte mail() bzw. sendmail dir eine lange Nase zeigen, sortiere, wie oben beschrieben, nach zweiter Domain-Ebene und mache kleinere Blöcke, meinetwegen erstmal 1000, dann 500, bis es klappt.
Bin vor geraumer Zeit mal auf einen Fehler aus der mySQL gestoßen "MySQL server has gone away". Dieser erschiem nach dem versenden
Lief dein Skript länger als die Verbindung zur Datenbank im Leerlauf gehalten wird?
das Ergebnis (wieviele versendet wurden etc.)
Ich weiß gar nicht, ob mail() überhaupt Versandfehler meldet, die nicht in einer Fehlkonfiguration auf deinem Server ihre Ursache haben. Soll heißen, wenn dein Server grundsätzlich Mails verschicken kann, würdest du von mail() keine Fehlermeldung bekommen, womit „das Ergebnis“ eh nicht sonderlich aussagekräftig wäre.

panna
PostRank 1
PostRank 1
Beiträge: 11
Registriert: 10.09.2009, 06:52

Beitrag von panna » 11.09.2009, 10:35

@Mork vom Ork
Ja genau, nach Anbieter sortieren und nicht nach TDL ... meinte ich eigentlich auch :roll:

Mir gefällt der Ansatz mehrere Nutzer mit einer Mail anzuschreiben, zwar hab ich gerade keine Ahnung wie, doch werde es schon herausbekommen. Per Bcc fällt mir da auf anhieb ein, doch steht beim Empfänger dann doch nicht seine Mail Adresse, sondern die es eigentlichen Empfängers. Hässliche Lösung...:-?

Gehe das in den nächsten Tage mal an und schauen was sich realisieren lässt!

Mit dem SQL Fehler ... denke die Laufzeit ist um einiges zu lange gewesen, da jede mal einzeln abgefragt wurde ...

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 11.09.2009, 12:29

panna hat geschrieben:Per Bcc fällt mir da auf anhieb ein, doch steht beim Empfänger dann doch nicht seine Mail-Adresse, sondern die es eigentlichen Empfängers. Hässliche Lösung...:-?
Das kommt darauf an, wessen Adresse du als „eigentlichen Empfänger“ angibst. Wenn du da newsletter@example.com reinschreibst (example.com = deine Domain), ist das neutral und aussagekräftig. Diese Adresse richtest du als Verweis auf dich selbst ein und kannst sie als Kanal nutzen, um technische bzw. Verwaltungsanfragen bzgl. deiner Rundschreiben abzuarbeiten. Insofern finde ich die Lösung ganz und gar nicht hässlich, eher praktisch.

Die tatsächlichen Empfänger übergibst du per bcc:, was bei Verwendung von mail() eh deine einzigste Möglichkeit ist, eine ganze Liste von Empfängern versteckt anzugeben.
Der ganze Rest des Versands ist Sache des Mailservers, der wurde extra dafür geschrieben, hat jahrelange Entwicklung hinter sich und kann auch tausende Mails ohne Aufhebens verwursten.

Von der Verwendung von PHP-Klassen, um selbst den SMTP-Transport abwickeln, bin ich nicht so recht überzeugt. Erstens wird da das Rad neu erfunden, zweitens ist das PHP-Universum nicht gerade ein Hort der Expertise (ohne jemandem zu nahe treten zu wollen), drittens ist der Webserver nicht für Mailversand gedacht, schon gar nicht langwierigen, viertens kann ich nicht so ganz nachvollziehen, warum eine Mail damit weniger Gefahr laufen sollte, als Spam aussortiert zu werden, schon alleine, weil Spamfilter Hunderte von Parametern abwägen. Das kann natürlich vorkommen, aber da würde ich doch gerne erstmal diesen einzelnen Fall unter die Lupe nehmen - ich behaupte einfach mal, dass es da eine ganze Reihe von Unstimmigkeiten gab und der Versandweg bestenfalls das Fass zum Überlaufen gebracht hat.

Der einzige Vorteil ist für mich, dass man in der Regel direkt beim Versand erfährt, welche Adresse nicht (mehr) stimmt, anstatt zeitverzögert und separat über Rückläufer.

Davon unabhängig: Bei SpamAssassin gibt es eine lange Liste mit Tipps, wie man seinen Kram unfallfrei an den Mann bringt, die solltest du dir rein prophylaktisch zu Gemüte führen.

Bauchladen
PostRank 6
PostRank 6
Beiträge: 388
Registriert: 24.04.2005, 13:51
Wohnort: Hamburg

Beitrag von Bauchladen » 11.09.2009, 15:18

panna hat geschrieben: PHP mail() Funktion oder sendmail?
Ich packe bei einem Projekt Kunden a 256 in BCC per Email mit PHPMailer, serialisiere das Objekt und scheibe es auf die HD in einzelne Dateien die von einem Cronjob (php) verarbeitet werden. Das Frontend läuft ca. 5 Sekunden asyncron zum Backend.



[/url]
Bild

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag