08.09.10 11:53 Kategorie: PHP

PHPlist E-Mails über mehrere Server versenden

Übermittlung Ihrer Stimme...
Bewertungen: 5.0 von 5. 2 Stimme(n).
Klicken Sie auf den Bewertungsbalken, um diesen Artikel zu bewerten.

PHPlist ist ein sehr umfangreiches OpenSource Programm für Newsletter.

Für wirklich große Installationen hat das Programm den Nachteil, dass es die E-Mails nur über einen einzigen SMTP-Host versenden kann, der als konstanter Wert in das config-File eingetragen wird.


Nicht einmal Versuche über DNS-Round-Robin mehre Server zu nutzen haben Erfolge gezeigt.

Mit kleinen Anpassungen am Programm ist es jedoch möglich. Wir werden auch versuchen die hier genannten Änderungen den Entwicklern zukommen zu lassen, so dass sie vielleicht Einzug in kommende Versionen finden.

Die Anpassungen erfolgen mit wenigen Zeilen Code:

Alle Zeilennummern beziehen sich auf die Version 2.10.12 von phplist

config.php

  1. //einfach am Ende der Datei einfügen
  2. $smtparray = array("server1.tld", "server2.tld", "server3.tld");
  3. if(!is_array($smtparray)){
  4. $smtparray[]=PHPMAILERHOST;
  5. }

sendemaillib.php

  1. //Zeile 23
  2. //alt:
  3. function sendEmail ($messageid,$email,$hash,$htmlpref = 0,$rssitems = \
  4. array(),$forwardedby = array()) {
  5. //neu:
  6. function sendEmail ($smtphost,$messageid,$email,$hash,$htmlpref = 0,$rssitems \
  7. = array(),$forwardedby = array()) {
  8. //Zeile 609:
  9. //alt:
  10. $mail = new PHPlistMailer($messageid,$destinationemail)
  11. //neu:
  12. $mail = new PHPlistMailer($messageid,$destinationemail,$smtphost)

processqueue.php

  1. //Zeile 352
  2. $hosts_count = sizeof($smtparray);
  3. $host_divide = 60/$hosts_count;
  4. //Zeile 641
  5. $date_s = date("s");
  6. $host_nr = floor ($date_s/$host_divide);
  7. $smtphost = $smtparray[$host_nr];
  8. //Zeile 647
  9. //alt:
  10. $success = sendEmail($messageid,$useremail,$userhash,$htmlpref,$rssitems);
  11. //neu
  12. $success = sendEmail($smtphost,$messageid,$useremail,$userhash,$htmlpref,$rssitems);

class.phplistmailer.php

  1. //Zeile 25
  2. //alt:
  3. function PHPlistMailer($messageid,$email) {
  4. //neu:
  5. function PHPlistMailer($messageid,$email,$mailhost) {
  6. //Zeile 39
  7. //alt:
  8. $this->Host = PHPMAILERHOST;
  9. //neu:
  10. $this->Host = $mailhost;

(te)


Nach oben


*

CAPTCHA Bild zum Spamschutz
Wenn Sie das Wort nicht lesen können, bitte hier klicken.
*
*

* Bitte ausfüllen

Keine Kommentare
Folgen Sie uns auf:
Werden Sie Fan!
Empfehlen Sie uns: