• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP SMTP Mail - mehrere Empfänger

Tobi44

Mitglied
Hallo,

ich möchte meinen Usern die Option bieten, bei neu erstellten Inhalten eine E-Mail zu erhalten. Dazu habe ich mir dieses hier genommen: https://wiki.hs-mittweida.de/index.php/E-Mails_über_PHP_versenden und damit funktioniert es auch eigentlich. Leider kommt nur die erste Mail an, obwohl ich den Vorgang in einer while-Schleife habe, bei der bei einer Testausgabe mit echo auch alle Mailadressen korrekt geholt werden.

Also irgendwas muss wohl nich richtig sein.

So sieht das bei mir aus:
PHP:
		$load_recipients = mysql_query("SELECT * FROM emailoptions WHERE test = 'yes'") or die (mysql_error());
		while($get_mailaddys = mysql_fetch_array($load_recipients)){
		$recipients_list = $get_mailaddys['email'];
		echo $recipients_list;

		// Send mail
if ($smtp != 0) {
$in = fgets($smtp, 1024);
fputs($smtp, "EHLO www.xxx.com\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "AUTH LOGIN\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, base64_encode($user)."\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, base64_encode($pass)."\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "MAIL FROM: [email protected]\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "RCPT TO: $recipients_list\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "DATA\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "Subject: Testmail\r\n");
fputs($smtp, "From: xxx <[email protected]>\r\n");
fputs($smtp, "To: $userlogin <$recipients_list>\r\n\r\n");
fputs($smtp, "Test.\r\n\r\n");
fputs($smtp, ".\r\n");
} else {
echo "error";
}
		// Send mail end
		} # while end
		$in = fgets($smtp, 1024);
		fputs($smtp, "QUIT\r\n");
		fclose($smtp);
Serveradresse und Benutzer/PW sind in einer anderen Datei definiert.

Btw - wenn ich 'ne Mail über den normalen MTA von Plesk schicke, kommt sie sofort auch bei Providern wie GMX an. Wenn ich über dieses Web Script was schicke, kommt es - vor allem bei GMX - oft gar nicht an. Bei anderen Providern mit Glück.
Wenn es doch per Webmail oder Thunderbird mit dem gleichen Server possible ist Mails zu versenden, warum dann nicht per PHP? Generell nicht oder muss man da das Script um irgendwelche Sachen erweitern? Verstehe das nicht, das hat ja bei mir noch nie wirklich geklappt ...
 
Zuletzt bearbeitet:
Benutze eine fertige Klasse w.z.B. den phpMailer und alles wird gut.
 
So, nach dem ersten Test kann ich sagen, dass der PHPMailer 5.2.4 funzt. :-)

Leider schaffe ich es nicht, dass die Mail an alle aus der Datenbank ausgelesenen Empfänger gesendet wird. Nachvollziehen kann ich das nicht, da sich die Versendung der Mail ja in der while-Schleife befindet.

Auch wenn der Code fürs Mail-verschicken nun anders ist, in meinem Beispiel oben habe ich ja das Prinzip, so wie es bei mir aussieht, gepostet.
Warum wird die Mail nur an die erste Mailadresse in der Datenbank gesendet???

Edit: Habe es geschafft. Hatte die class.phpmailer.php-Datei in der while-Schleife included, wodurch ein Fehler erzeugt wurde und nach dem ersten Schleifendurchgang abgebrochen wurde.

Klappt nun perfekt.
 
Zuletzt bearbeitet:
Zurück
Oben