Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » 8000 Newsletter mit PHPMailer verschicken!? Antworten
8000 Newsletter mit PHPMailer verschicken!?

flotschi1981
Fachidiot


Beiträge: 114


Hallo,

ich habe bei SuLeiTec meine Internetseite! Nun habe ich mir ein Newsletterscript geschrieben um an ca. 8000 Emails einen Newsletter zu senden!

Ist sowas ohne Probleme möglich? Kann es da zu Schwierigkeiten kommen? Was passiert wenn der Server abbricht? Kann man sowas umgehen oder irgendwie an dieser Stelle fortsetzen?

Ich würde mich auf ein paar Erfahrungen freuen!

Vielen Dank

Flo

  Profil   E-Mail   Editieren   Zitieren

Maxx
Otto-Normal-Poster


Beiträge: 87


Ich wuerde je nach dem, wie du die Emails aufbewarst, trennen, und dann das Script mit dem naesten Teil weitermachen lassen.
Das spart erstmal Server-Ressourcen, und es ist nicht so anfaellig gegen Abstuerzen des Servers oder des Browsers.

---
BoardSuche - PHP - Google

  Profil   Editieren   Zitieren

flotschi1981
Fachidiot


Beiträge: 114


Danke für die Antwort!

Die Emails liegen in einer MySQL-DB! Wie meinst du trennen und wieder weitermachen? Ich möchte schon das der User die 8000 Emails auf einmal verschicken kann sonst muss er ja nach 1000 Emails wieder an den PC und wieder neustarten etc...

Kannst du mir das genauer erklären?


  Profil   E-Mail   Editieren   Zitieren

Maxx
Otto-Normal-Poster


Beiträge: 87


So meinte ich das nicht.
Mein Gedanke waere so gewesen:

- du ließt dir von deinen 8.000 Email die ersten 500 heraus (LIMIT 0, 500)
- sendest an die ersten 500 Adressen deine Email
- setzt einen Zaehler nach oben
- ließt die naesten 500 Emails aus der Datenbank (LIMIT 500, 1000)
- schreibt den wieder die Email etc

das Script praktisch automatisch immer wieder aufrufen lassen.
Den Zaehler kann man beispielsweiße in einer .txt zwischenspeichern, oder an eine andere
.php Datei uebergeben, die dann damit wieder die erste aufruft.
(Wenn man das ganze nur in einer Schleife erledigen laesst, kommt es dennoch zu viel zu langen Ladezeiten und einer hohen Ressourcenverschwendung, vondaher 2 Datein die sich im Wechsel aufrufen.)
Ich weiß nicht ob es die beste Loesung fuer das Problem ist, aber so wuerde ich das umsetzen.

---
BoardSuche - PHP - Google

Diese Nachricht wurde geändert von: Maxx
  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Ansonsten kannst du das evtl. auch über die Mailingliste von suleitec Regeln. So weit ich das in Erinnerung hab wird die nur mit Dateien gesteuert? Die könntest du dann ja mit PHP anlegen lassen. Das würde die Serverbetreiber wohl am ehesten noch freuen.

---
Take a look here!
Lichtblick - Einblick - Ausblick

Diese Nachricht wurde geändert von: languitar
  Profil   E-Mail   Website   Editieren   Zitieren

NetDrag
Foren-Team


Beiträge: 461


generell ist es kein problem wenn du das mail an dich richtest und alle adressen in den bcc schreibst. dann wird die mail als einziger job an den mailserver gerichtet. das beschleunigt das ganze extrem, und dein skript läuft nciht in den timeout.

Es gibt aber folgendes zu bedenken: Hat dein Provider ein limit für bcc duch die mail funktion? Einige provider richten das ein um den mißbrauch von formularen als spam plattform zu verhindern. Außerdem hat der mailserver selbst meißt ein limit.

Also besser das mailinglisten programm des providers verwenden.

sonst gibts mit Maillist Controller ein billiges einfach zu verwendendes tool

---
We are born wet, naked and hungry, then things got worse!

  Profil   Website   Editieren   Zitieren

flotschi1981
Fachidiot


Beiträge: 114


Hallo,

Danke für die Antworten! Ich verschicke personalisierte Emails und diese Daten werden aus meiner DB geholt! Darum kann ich nicht per bcc schicken oder über irgendwelche Maillinglisten!

Ich möchte es so machen, dass einfach immer 100Emails rausgehen und dann das Script nochmals gestartet wird und mit den nächsten 100 weitermacht. Leider habe ich noch keine Ahnung wie das funktionieren soll! Werde mal bißchen googlen!

Oder könnt ihr mir ein Code-Beispiel geben?

Danke

Flo

  Profil   E-Mail   Editieren   Zitieren

Maxx
Otto-Normal-Poster


Beiträge: 87


hab ich doch oben schon erklaert wie das funktioniert, musst lediglich ein LIMIT bei dem mySQL-query setzen, welches du mit einem Zaehler erhoehst.

---
BoardSuche - PHP - Google

  Profil   Editieren   Zitieren

flotschi1981
Fachidiot


Beiträge: 114


Hallo,

ok das hab ich schon gecheckt! Aber wie rufe ich denn die Seite nochmals von neuem auf?????

Kannst du mir bitte ein Beispiel geben?!

Danke!

  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Entweede du hoffst einfach auf einen neuen Besucher, oder lässt die Seite sich selbst per JavaScript wieder aufrufen, bis alles abgearbeitet ist.

Aber die Mailingliste hier bei Suleitecm üsste auch wirklich funktionieren, da sie, wie gesagt, meiner Meinung nach über Dateien gesteuert wird, und die kannst du ja auch per PHP schreiben lassen.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


Maxx schrieb am 04.02.2006 17:49
- ließt die naesten 500 Emails aus der Datenbank (LIMIT 500, 1000)


Würde dann aber (LIMIT 500, 500) sein !

  Profil   Editieren   Zitieren

flotschi1981
Fachidiot


Beiträge: 114


Kann man das auch so machen und würde dies was bringen/helfen?

$sql = "SELECT * FROM tabelle LIMIT ".$_GET[startwert].",100";
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
# Verschicke hier die eMails
}
header("location:senden.php?startwert=".$_GET[startwert]+100);

Liebe Grüße

Florian

  Profil   E-Mail   Editieren   Zitieren

raiserle
Fachidiot


Beiträge: 144


mal kurz so hingewurschtelt.... wegen ner abbruchbedingung
kannst natürlich auch mit
mysql_num_rows(); einmal zählen... is mir aber erst eben eingefallen
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22:
<?php
if($_GET)
    $start=$_GET['startwert']+100;
else
    $start=0;    

$i=0;
$sql = "SELECT * FROM tabelle LIMIT ".$start.",100";
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
# Verschicke hier die eMails
    $i++;
}
  
if($i<100){
    exit();
}          
header("location:senden.php?startwert=".$start);
?>


---
Irren is Menschlich

Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!

Kameradschaft ist, wenn der
Kamerad schafft !!!!

  Profil   E-Mail   Website   Editieren   Zitieren
 

Antworten
Nach oben