Newsletter via phpmailer

Microhome

Erfahrenes Mitglied
Guten Abend liebe Community,
ich versuch nun schon seit mehr als drei Stunden mein Mail-Problem in den Griff zu bekommen - leider ohne Erfolg.
Ich verwende folgenden PHP Code zum versenden einer URL des aktuellen Newsletters. In der Datenbank befinden sich über 600 Mailadressen, was wohl anscheinend zu folgendem Problem führt: Nach ca. 5 Minuten erscheint einfach eine weiße Seite und ich weiß nicht wie viele Mails bereits versendet wurden. Wie kann ich das Problem lösen? Stückeln hilft glaub ich auch nichts, da die Maximum Execution Time trotzdem überschritten wird.

Code:
	$emailbody="Hier der Text mit dem Link";

	$res = mysql_query("SELECT * FROM newsletteremail WHERE tempid LIKE \"\" ORDER BY email ASC");
	while ($check = mysql_fetch_object($res)){
		$emails[] = $check->email;
	}

	require('phpmailer/class.phpmailer.php');
	$mail = new PHPMailer();
	$mail->From = "noreply@domain.de";
	$mail->FromName = "Newsletter Verteiler";
	$mail->Subject = "Aktueller Newsletter";
	$mail->Body = $emailbody;
	$receivers = $emails;
	foreach ($receivers as $receiver){
		$mail->AddAddress($receiver);
		if(!$mail->Send()){
			echo "Der Newsletter konnte nicht versendet werden.<br>";
			echo "Fehler: " . $mail->ErrorInfo;
		}
		else{
			echo "<i>Der Link für den Newsletter wurde erfolgreich an die Empfänger versandt.</i>";
     	}
     	$mail->ClearAddresses();
 
Hab ich auch schon versucht, bringt leider auch nichts. Seite ist übrigens bei 1und1 im Business Paket gehostet.
 
Sorry für den push, aber hat niemand eine Idee? Ich mein das muss ja irgendwie möglich sein 600 Mails zu verschicken?!
 
Ich hoffe nur du beachtest geltendes Recht bzgl. Newsletter:

Lösungsvorschlag 1:

Verteilerliste in SQL anlegen.
Vielleicht sogar eine Tabelle, in welcher der Mail-Inhalt auch enthalten ist.
Hinweis : Wenige INSERT-Querys nutzen, vielleicht nur einen oder alle 100 einen.
Dort alles notwendige reinschreiben.
Per Cron-Job alle 5minuten oder 10 minuten immer jeweils 10 oder 100 Mails abarbeiten.


Lösungsvorschlag 2:

Eine gesonderte PHP anlegen die Mails versendet an $_GET["mail"] mit dem Inhalt $_GET["content"].
Auf diese entsprechend zugreifen / an diese PHP senden ohne das auf das Result gewarted wird (wie das Möglich ist wüsste ich selbst gerade gern).


Lösungsvorschlag 3:

Per header("Location : newsletter_versand.php?next=next_mail@irgendwo.foo"); weiterleiten auf das selbe Script, um nächste Mailadresse anzusprechen.

Soweit ein paar schnelle Gedanken von mir ;)
 
Zuletzt bearbeitet:
Naja, ist nur alles nicht so das was ich gern hätte. Ich dachte ja, dass der phpmailer das Versenden automatisch splittet, eben um diesen Timeout zu verhindern.. hmmm, gibt es entsprechende Alternativen die das können?
 
Bei Newslettern sehe ich im Footer oft etwas von "phplist" stehen.
Ich habe es noch nie verwendet und bin auch nicht wirklich motiviert danach zu googlen - aber du kannst dich ja mal schlau machen ob das eine Alternative wäre..oder dich von deren Lösung inspirieren lassen. :)
 
Zuletzt bearbeitet:
Zurück