Postfix - 1.000.000 Mails pro Stunde?
Hallo zusammen,
ich suche nach einer Lösung bis zu 1.000.000 E-Mails pro Stunde zu verschicken. Für alle die sich mit diesem Thema etwas schwer tun: Es handelt sich hierbei nicht um Spam! Ich biete eine webbasierte Software zur Steuerung von E-Mail Marketing Kampagnen (PHP, Perl, Postgresql, Postfix). Dabei verpflichten sich meine Kunden vertraglich ausschliesslich permission basierte Adressen zu verwenden (Double Optin). Bin mit meinem momentanen Mailserver bei diversen großen ISPs auf der Whitelist komme aber nicht über eine Versandmenge von ca. 60.000 E-Mails pro Stunde.
Ein neuer Auftrag macht mir zu schaffen, weil es hierbei darum geht wesentlich größere Mengen in kürzerer Zeit zu verschicken als ich das bisher mache. Mein Ziel ist es ca. 1.000.000 E-Mails pro Stunde verschicken zu können und ich weiss nicht genau wo ich ansetzen muss. Sieht irgendjemand eine Möglichkeit das mit Postfix zu bewerkstelligen? Kann man Postfix sinnvoll clustern und so die Versandkapazität erhöhen. Ich habe von einigen kommerziellen Lösungen gehört, wie zum Beispiel port25.com und strongmail.com. Meint ihr sowas kann man auch mit open source erreichen?
Vielen Dank für jeden Tipp und Hinweis. Gruß,
Florian
ich suche nach einer Lösung bis zu 1.000.000 E-Mails pro Stunde zu verschicken. Für alle die sich mit diesem Thema etwas schwer tun: Es handelt sich hierbei nicht um Spam! Ich biete eine webbasierte Software zur Steuerung von E-Mail Marketing Kampagnen (PHP, Perl, Postgresql, Postfix). Dabei verpflichten sich meine Kunden vertraglich ausschliesslich permission basierte Adressen zu verwenden (Double Optin). Bin mit meinem momentanen Mailserver bei diversen großen ISPs auf der Whitelist komme aber nicht über eine Versandmenge von ca. 60.000 E-Mails pro Stunde.
Ein neuer Auftrag macht mir zu schaffen, weil es hierbei darum geht wesentlich größere Mengen in kürzerer Zeit zu verschicken als ich das bisher mache. Mein Ziel ist es ca. 1.000.000 E-Mails pro Stunde verschicken zu können und ich weiss nicht genau wo ich ansetzen muss. Sieht irgendjemand eine Möglichkeit das mit Postfix zu bewerkstelligen? Kann man Postfix sinnvoll clustern und so die Versandkapazität erhöhen. Ich habe von einigen kommerziellen Lösungen gehört, wie zum Beispiel port25.com und strongmail.com. Meint ihr sowas kann man auch mit open source erreichen?
Vielen Dank für jeden Tipp und Hinweis. Gruß,
Florian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 39296
Url: https://administrator.de/contentid/39296
Ausgedruckt am: 14.11.2024 um 07:11 Uhr
6 Kommentare
Neuester Kommentar
Ich halbe selbst einen Postfix Emailserver und erreiche in der Stunde gerade mal um die 15 000 Mails, wenn ich lokal bleibe. Habe dafür extra ein Script geschrieben, weil ich sehen wollte, wie hoch die CPU Auslastung wird.
Postfix hat außerdem Intervale wo er die Emails verschickt z.B. alle 30 Sek. Diese kann man, meines Wissens, umstellen.
Ich denke Postfix wird dafür nicht genug Power haben und Module wie Virenscanner, Spamfilter ect. verlangsamen die Sache natürlich gewaltig.
Ich kann mir auch gut vorstellen das mehr CPU Leistung, auch mehr Emailleistung für Postfix bietet.
Ich weiß es ehrlich gesagt auch nicht ob man da noch etwas großartig optimieren kann, aber mir konnt ja auch keiner mit meinem Postfix Problem helfen.
Siehe hier: Postfix SMTP Server mit MX Zonen Ueberpruefung ( moeglich? )
Postfix hat außerdem Intervale wo er die Emails verschickt z.B. alle 30 Sek. Diese kann man, meines Wissens, umstellen.
Ich denke Postfix wird dafür nicht genug Power haben und Module wie Virenscanner, Spamfilter ect. verlangsamen die Sache natürlich gewaltig.
Ich kann mir auch gut vorstellen das mehr CPU Leistung, auch mehr Emailleistung für Postfix bietet.
Ich weiß es ehrlich gesagt auch nicht ob man da noch etwas großartig optimieren kann, aber mir konnt ja auch keiner mit meinem Postfix Problem helfen.
Siehe hier: Postfix SMTP Server mit MX Zonen Ueberpruefung ( moeglich? )
HI,
ich glaube nicht, dass Du dies mit nur einem Rechner schaffen wirst. z.B. ist ja die Bandbreite irgendwann zu ende und auch die empfangenden Mailserver werden Dich bremsen.
Um solche Mengen zu verschicken wirst Du wenigstens 15 Server brauchen.
Wieviele eMails sind es denn am Tag? Weil man muß ja nicht alles innerhalb von 30 Minuten verschicken, sondern hat ggf. mehr Zeit.
So oder so wirste aber nicht um ein "cluster" herumkommen. Man bedenke alleine die Bounces .... ist sicher auch nicht wenig.
gruß
ps.: es ist nicht so kriegsentscheidend welchen MTA Du verwendest. Zum versenden sollte der eh recht simpel eingestellt sein - also ohne große checks.
ich glaube nicht, dass Du dies mit nur einem Rechner schaffen wirst. z.B. ist ja die Bandbreite irgendwann zu ende und auch die empfangenden Mailserver werden Dich bremsen.
Um solche Mengen zu verschicken wirst Du wenigstens 15 Server brauchen.
Wieviele eMails sind es denn am Tag? Weil man muß ja nicht alles innerhalb von 30 Minuten verschicken, sondern hat ggf. mehr Zeit.
So oder so wirste aber nicht um ein "cluster" herumkommen. Man bedenke alleine die Bounces .... ist sicher auch nicht wenig.
gruß
ps.: es ist nicht so kriegsentscheidend welchen MTA Du verwendest. Zum versenden sollte der eh recht simpel eingestellt sein - also ohne große checks.
Ich glaube das es nicht möglich ist Postfix selbst zu clustern.
Ich hatte mal in einem Beowolf Cluster Postfix laufen, aber richtig geclustert wurde der Postfix trotzdem nicht.
Zum tunen kann ich das offizielle HowTo empfehlen: http://www.postfix.org/TUNING_README.html#rope
Interessant ist auf der Postfix Tunig Readme folgendes Zitat:
"Although Postfix can be configured to run 1000 SMTP client processes at the same time, it is rarely desirable that it makes 1000 simultaneous connections to the same remote system. For this reason, Postfix has safety mechanisms in place to avoid this so-called "thundering herd" problem. " <--- das könnte was werden. So 150 000 werden wohl drinnen sein.
Und das hier ist, zum Thema DNS lookup tuning, noch interessant:
http://software.newsforge.com/article.pl?sid=05/05/12/1510200&tid=7 ...
Ich denke langsam das es vom Grundsatz her machbar sein sollte über 100 000 Emails pro Stunde zu verschicken. Denke aber das Hardware und Internetbandbreite letztendlich das Problem darstellen.
Das größere Problem werden wahrscheinlich die SMTP Server am anderen Ende sein die, die Emails empfangen werden. So gmx, yahoo, gmail usw. hat ja auch ne Clusterfarm von Emailservern, ansonsten würden viele Emailbesitzer dort mehrere Tage warten, bis sie eine Email verschicken können bzw. empfangen haben, aber die haben auch mehrere Gbit Bandbreite *G*.
Ich hatte mal in einem Beowolf Cluster Postfix laufen, aber richtig geclustert wurde der Postfix trotzdem nicht.
Zum tunen kann ich das offizielle HowTo empfehlen: http://www.postfix.org/TUNING_README.html#rope
Interessant ist auf der Postfix Tunig Readme folgendes Zitat:
"Although Postfix can be configured to run 1000 SMTP client processes at the same time, it is rarely desirable that it makes 1000 simultaneous connections to the same remote system. For this reason, Postfix has safety mechanisms in place to avoid this so-called "thundering herd" problem. " <--- das könnte was werden. So 150 000 werden wohl drinnen sein.
Und das hier ist, zum Thema DNS lookup tuning, noch interessant:
http://software.newsforge.com/article.pl?sid=05/05/12/1510200&tid=7 ...
Ich denke langsam das es vom Grundsatz her machbar sein sollte über 100 000 Emails pro Stunde zu verschicken. Denke aber das Hardware und Internetbandbreite letztendlich das Problem darstellen.
Das größere Problem werden wahrscheinlich die SMTP Server am anderen Ende sein die, die Emails empfangen werden. So gmx, yahoo, gmail usw. hat ja auch ne Clusterfarm von Emailservern, ansonsten würden viele Emailbesitzer dort mehrere Tage warten, bis sie eine Email verschicken können bzw. empfangen haben, aber die haben auch mehrere Gbit Bandbreite *G*.
Hi,
was Du meinst ist die theoretische Bandbreite. Da ist ja doch noch ein wenig Protokoll overhead.
Aber egal. Dein Problem ist auch nicht wirklich die Bandbreite, sondern die Geschwindigkeit beim Verarbeiten der emails.
Ich weiß nicht wie Du die zu verschickenden eMails erzeugst, aber wahrscheinlich ist es einfacher diese schon dort auf mehrere Mailserver zu verteilen. Man könnte z.B. eine Art DNS-Round-Robin mit mehreren Host-A Einträgen verwenden. Es kommt aber wirklich auch die Application an die die eMails erstellt und dann an die verschiedenen Mailserver gibt.
Wenn das Scriptgesteuert ist, dann ist das recht einfach zu implementieren. So als Schnellschuß (nicht durchdacht!!) :
sendene email%20 (modulo 20)
wenns aufgeht:
host a als mailhost
wenn 1 überbleibt:
host b asl mailhost
etc.etc.
Sicher ist es besser in z.b. 100'er oder 1000'er Schritten den Host zu wechseln. Aber nur so als Gedanke.
Gruß patrick
was Du meinst ist die theoretische Bandbreite. Da ist ja doch noch ein wenig Protokoll overhead.
Aber egal. Dein Problem ist auch nicht wirklich die Bandbreite, sondern die Geschwindigkeit beim Verarbeiten der emails.
Ich weiß nicht wie Du die zu verschickenden eMails erzeugst, aber wahrscheinlich ist es einfacher diese schon dort auf mehrere Mailserver zu verteilen. Man könnte z.B. eine Art DNS-Round-Robin mit mehreren Host-A Einträgen verwenden. Es kommt aber wirklich auch die Application an die die eMails erstellt und dann an die verschiedenen Mailserver gibt.
Wenn das Scriptgesteuert ist, dann ist das recht einfach zu implementieren. So als Schnellschuß (nicht durchdacht!!) :
sendene email%20 (modulo 20)
wenns aufgeht:
host a als mailhost
wenn 1 überbleibt:
host b asl mailhost
etc.etc.
Sicher ist es besser in z.b. 100'er oder 1000'er Schritten den Host zu wechseln. Aber nur so als Gedanke.
Gruß patrick