# Mail-Verteiler



## CRazyP (18. Februar 2004)

hi! 

Ich hab vor so ein Ding zu coden!
Doch leider weiss ich net wie ich das anstellen soll...

Sollen die Mails aus einer Datenbank gelesen werden? Und wie mach ich dann, das er "allen" eine Mail schickt? Also die Mails in die Datenbank schreiben und so! Ist ja net schwer! Und das kann ich...


Aber wie verschick ich das? Hat wer vielleicht n nettes Tutorial? Oder n Tipp?


Eine Txt-Datei käme ja nicht in frage, schon allein aus sicherheitstechnischen Gründen!

Mfg
 Crazy


----------



## bspainkf36 (18. Februar 2004)

Hi !

hier findest du ein total easy Tutorial zur mail() Funktion

so nun zu deinem Problem 

aus der Db die Emailadressen in einer Schleife auslesen und per mail() Funktion verschicken 


```
$result_news = mysql_query("SELECT email FROM member ORDER by member_id DESC") or die(mysql_error()); 
			
while($row_member = mysql_fetch_object($result_news)) 
{
   // mail-funktion mit daten füllen und verschicken :)
}
```

gruß kon


----------



## CRazyP (18. Februar 2004)

Ja, so gehts auch!

Und sogar besser.. da sieht jeder Member nur seine Email, und nicht die eines anderen! 


Dankeschön für die schnelle Hilfe


----------



## cocoon (19. Februar 2004)

Wo man hier gerade beim Thema Newsletter/Verteiler ist, hätte ich diesbezüglich auch noch eine Frage:

Sollte man bei so einem Programm die Ausführungszeit von PHP, die ja standardmäßig soweit ich weiss auf einen Wert begrenzt ist, auf 0 setzen, weil ja davon auszugehen ist, dass bei einem großen Verteiler durchaus ordentlich an Zeit einzuplanen ist? Wie würdet Ihr ferner eine Art "Logging" realisieren, um nachher zu überprüfen, ob wirklich alle geplanten Mails verschickt wurden? Für jede Adresse ein Logfle zu öffen und reinzuschreiben, dass an diesen Empfänger geschickt wurde, wäre doch nicht sehr performant, oder?!


----------



## bspainkf36 (19. Februar 2004)

ja kommt drauf an, wieviele Mails hintereinander verschickt werden sollen?


----------



## mowl (19. Februar 2004)

Das sofortige Verschicken der Mails in der Schleife ist eine sehr schlechte Methode, siehe Massenmailverand


----------



## cocoon (19. Februar 2004)

> _Original geschrieben von mowl _
> *Das sofortige Verschicken der Mails in der Schleife ist eine sehr schlechte Methode, siehe Massenmailverand *


Über BCC verschicke ich derzeit meine Newsletter, d.h. manuell mit meinem eMail-Client. Irgendwie kommen davon aber manche nicht an. Kann es sein, dass manche Free-Mail-Dienste (hotmail o.ä.) diese BCC-Zeile blocken? Ich schicke den Newsletter imme testweise an meine Hotmail mit, da kommt er aber nie an..


----------



## Neurodeamon (19. Februar 2004)

> _Original geschrieben von cocoon _
> *Über BCC verschicke ich derzeit meine Newsletter, d.h. manuell mit meinem eMail-Client. Irgendwie kommen davon aber manche nicht an. Kann es sein, dass manche Free-Mail-Dienste (hotmail o.ä.) diese BCC-Zeile blocken? Ich schicke den Newsletter imme testweise an meine Hotmail mit, da kommt er aber nie an.. *



BCC veranlasst Deinen Server, von dem Du die mails verschickt eine "Kopie" der Mail an die angegebenen adressen zu senden. Beim Empfänger kann der Mail-Dienst aber so eingestellt sein, das BCC-Mails automatisch als SPAM geblockt werden (was aber ziemlich dämlich ist, nicht alles ist spam). Andererseits blocken einige Anbieter auch Riesen-Header. Meistens ist es aber nur eine schlechte Konfiguration von überforderten Usern.

Da kann man leider nicht viel machen. Nur halt den entsprechenden Mail-Diensten keine BCC-Mails zu schicken.


----------



## cocoon (19. Februar 2004)

> _Original geschrieben von Neurodeamon _
> Da kann man leider nicht viel machen. Nur halt den entsprechenden Mail-Diensten keine BCC-Mails zu schicken.


Deshalb wollte ich ja in den nächsten Wochen ein PHP-Skript installieren, das den Versand übernimmt, weil ich alle Adressen in die TO-Zeile zu packen, wo sie für jeden Empfänger ersichtlich sind, für unseriös halte. Aber scheinbar rät man ja davon ab, alle Empfänger-Adressen per Schleife durchzugehen und für jede mittels mail() eine eMail zu verschicken.


----------



## Neurodeamon (19. Februar 2004)

> _Original geschrieben von cocoon _
> *Aber scheinbar rät man ja davon ab, alle Empfänger-Adressen per Schleife durchzugehen und für jede mittels mail() eine eMail zu verschicken. *



Das Problem ist, das php mail() ganz schön an der Serverleistung saugt. Zusätzlich musst Du die PHP-Ausführzeit in die Höhe setzen, sonst hört das Script nach 15 - 30 Sekunden Standard einfach auf zu arbeiten 

Irgendwie kann man das aber auch pipen ... 

Ich verwende für Mailinglisten qmail mit ezmlm.
Aber dafür braucht man einen entsprechend konfigurierten Server


----------



## Ben Ben (20. Februar 2004)

Du kannst auch probieren eine direkte Socketverbindung zu einem SMTP-Server aufzubauen und die Mails so rauszuschicken. Geht jedenfalls schneller als mit mail() obgleich es für einen gröseren Newsletter immernoch ungeeignet ist.


----------



## surrounder (4. Juli 2004)

> _Original geschrieben von Neurodeamon _
> *Das Problem ist, das php mail() ganz schön an der Serverleistung saugt. Zusätzlich musst Du die PHP-Ausführzeit in die Höhe setzen, sonst hört das Script nach 15 - 30 Sekunden Standard einfach auf zu arbeiten *


Das heißt, wenn man auf einen Server angewiesen ist, dessen Konfig man nicht beeinflussen kann, dann kommt man um die BCC-Methode nicht drumrum, weil die TO-Methode zu viel Performance kostet, ja? Wahrscheinlich steigt einem der Provider dann eh aufs Dach, wenn man zu viel Performance saugt 

Gibt es ein Limit (entweder technisch oder praktisch/performance-technisch), über das man bei BCC-Empfängern nicht gehen sollte? Wird ja wahrscheinlich auch keinen großen Unterschied machen, ob man jetzt 500 Empfänger riskant in einer Mail oder risikoloser je 50 Empfänger in 10 Mails bedient, oder?

Ist jemandem bekannt, ob Provider Massenversand blockieren, erschweren, verbieten oder sich beschweren, wenn man's macht?


----------



## Neurodeamon (4. Juli 2004)

> _Original geschrieben von surrounder _
> *Gibt es ein Limit (entweder technisch oder praktisch/performance-technisch), über das man bei BCC-Empfängern nicht gehen sollte? Wird ja wahrscheinlich auch keinen großen Unterschied machen, ob man jetzt 500 Empfänger riskant in einer Mail oder risikoloser je 50 Empfänger in 10 Mails bedient, oder?
> 
> Ist jemandem bekannt, ob Provider Massenversand blockieren, erschweren, verbieten oder sich beschweren, wenn man's macht? *



Ja, es gibt ein Limit. Aber das ist frei vom Administrator einstellbar (kommt auch auf den Mailserver an). Meistens klappt es aber mit 300 - 500 BCC. Notfalls teilt man mit PHP BCC in 50er Mail-Blöcke. Das sind dann zwar schon 10 Mails für 500 BCC Adressen, aber halt keine 500 Anfragen


----------



## surrounder (4. Juli 2004)

Meint ihr man sollte den Provider vorher fragen, ob der erwartete Newsletter-Massenversand so in Ordnung geht?


----------



## surrounder (4. Juli 2004)

> *Ja, es gibt ein Limit. Aber das ist frei vom Administrator einstellbar (kommt auch auf den Mailserver an).*


Hab grad mal in der phpinfo geguckt, aber da kann man das offensichtlich nicht nachgucken, oder? Irgendwo sonst? Ansonsten frag ich da am besten auch mal nach.


----------



## Neurodeamon (4. Juli 2004)

> _Original geschrieben von surrounder _
> *Hab grad mal in der phpinfo geguckt, aber da kann man das offensichtlich nicht nachgucken, oder? Irgendwo sonst? Ansonsten frag ich da am besten auch mal nach. *



Ein BCC Limit hat herzlich wenig mit PHP zu tun, sondern mit dem Mailserver. Jeder Mailserver hat eine andere Gesamt-Empfänger-Anzahl, die per BCC angeschrieben werden kann. Unglücklicherweise werden Provider nicht jedem diese Grenzzahl auf die Nase binden (frag doch einfach mal nach). Ansonsten muss man halt ein wenig experimentieren - wenn der Server plötzlich Fehlermeldungen von sich gibt, ist das Limit erreicht.


----------



## Arne Buchwald (4. Juli 2004)

In meiner Forumsoftware besteht auch die Möglichkeit, individuelle Newsletter an großen Stückzahlen zu versenden. Bisher habe ich es so geregelt, dass immer eine Anzahl X versendet werden, bis der Versender das Script mit dem nächsten Durchlauf startet, um so Timeouts zu vermeiden.

Da die Forumsoftware jetzt aber auf eigenen Servern läuft, werde ich nur einen Hinweis in die DB schreiben lassen, woraufhin dann ein Daemon im Hintergrund die DB überprüft und ggf. dann den eMail-Versandt startet. Aber das erfordert halt einen eigenen Server bzw. einen Anbieter, dem man sein Vorhaben vorher gründlich erläutert.


----------



## surrounder (5. Juli 2004)

In der phpinfo steht ja auch ab und zu mal was, was nicht direkt mit PHP zu tun hat  

Kenn es eigentlich passieren, dass beim Massenversand die Mails/die
Absenderadresse/der Mailserver als Spam/Spamquelle eingestuft werden kann? Oder wird sowas erst kommen, wenn sich die neu angedachten Standards zur Spam-Bekämpfung durchgesetzt haben?


----------



## Neurodeamon (5. Juli 2004)

> _Original geschrieben von surrounder _
> *Kenn es eigentlich passieren, dass beim Massenversand die Mails/die Absenderadresse/der Mailserver als Spam/Spamquelle eingestuft werden kann? Oder wird sowas erst kommen, wenn sich die neu angedachten Standards zur Spam-Bekämpfung durchgesetzt haben? *



Es kann unter Umständen passieren, das Mails über BCC als Spam erkannt werden, allerdings ist das dann ein globales Problem - hier wird einfach der Header UNDISCLOSED RECIPIENTS als SPAM-Erkennung missbraucht. Das ist nicht die Feine englische Art 


Wie sind denn die neu angedachten Standards zur Spam-Bekämpfung?
SPAM wird erst aufhören, wenn die Absender die Mail-Daten-Last zu tragen haben


----------



## surrounder (5. Juli 2004)

Es gibt da so ein paar Überlegungen von verschiedenen Zusammenschlüssen/Komitees. Die denken sich Techniken zur Authentifizierung oder sonstigen Spameindämmung aus. Eines z.B. unter Leitung von Microsoft. Hab da letztens was in der CZ gelesen, wenn ich noch mal drauf stoße, fass ich's mal kurz zusammen.

Aber mit der BCC-Einstufung als Spam muss dann halt der Interessent leben, wenn ihn die Mail nicht erreicht, oder kann da sogar was auf den Mailserver/Provider zurückfallen?


----------



## Neurodeamon (5. Juli 2004)

Naja, man kann ja als Benutzer meist einstellen, was mit "spam" passieren soll. Wer seine mails löscht, ohne mal darüber zu schauen ist selbst schuld


----------



## ManicMarble (14. Juli 2005)

Hallo Ihr Alle,
sorry, dass ich diesen alten Thread wieder hochhole, aber ich beschäftige mich gerade zwangsläufig mit dem Thema und ich dachte, das passt gut hier hinten dran. Es geht um Newsletter-Versand in einer Größenordnung von 2.000 bis 20.000 Empfängern. Gängige Newsletter-Software passt da nicht so ganz, wir haben bereits einen Adress-Pool an Newsletter-Abonenten in einer MySQL-DB der auch permanent wächst, die Subscribe/Unsubscribe-Technik soll beibehalten werden und ich würde gerne Daten-Redundanz durch Import in ein Stand-Alone-Newletter-System vermeiden. 

Es geht also momentan nur um den Versand. Hier haben beide Techniken, PHP-Schleife und BCC, ihre Probleme. Bei BCC kommt noch das bisher nicht angesprochene Problem der firmeninternen Weiterleitung hinzu. Wir Admins hier bekommen andauernd solche Newsletter, die irgend ein Mitarbeiter aboniert hat, die von unserem Exchange-Server dann aber nicht zugestellt werden können, da im Header ja die Empfängeradresse nirgends steht.

Gibt's denn da irgendwelche praxistaugliche Alternativen? Gibt's vielleicht ein passendes Tutorial dazu (ich gestehe, ich habe jetzt nicht explizit in den Tutorials gesucht).

Eure Expertenmeinung hierzu wäre mir sehr willkommen.

Grüße,
_Martin_


----------



## Neurodeamon (14. Juli 2005)

Hast Du schon versucht mit [phpf]usleep[/phpf] die Mails in Schüben zu versenden, wenn der Mailserver nicht mehr mit dem Verschicken nachkommt? Also, 2.000 mails - usleep 10 sec, 2.000 mails - usleep 10 sec, 2.000 mails - usleep 10 sec, usw. Ich vermute mal, das es sich um eigene Server handelt, dann dürfte wohl die Scriptlaufzeit nicht das Problem sein.


----------



## XEMO (15. Juli 2005)

Also ich bin grad am Entwickeln an einer Community,
und ich bräucht auch noch so ein mailer.  

Jedoch will ich was programmieren was auch in Zunkunft funktioniert...
...also das mit der Socket-Verbindung hört sich ja schomal interressant an.
Hat hier irgendjemand was passendes in der Scriptkiste Dann bräucht ich nich alles selber schreiben.   

Jetzt heisst es aber weiter das der Massenversand ungeeignet sei, (mit defektem Link),
wie soll man die Mails denn dann versenden?  

Ich geh jetzt mal einfach (für die Zukunft gesehn  ) von 2500 Newsletter aus.

Bin ja ma gespannt auf die Antwort(en) 

EDIT; Ich hab nen Root-Server, da spielt die Scriptlaufzeit keine Rolle. Die Performance jedoch schon.


----------



## Neurodeamon (15. Juli 2005)

XEMO hat gesagt.:
			
		

> wie soll man die Mails denn dann versenden?


Aus Performancegründen: Mit einem Newsletter-System wie z. B. ezmlm (Serversoftware)


----------

