mehrfache mail()-Zustellung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
bearbeiten
beispiel
benutzen
benutzername
betreff
code
datum
email
frage
funktion
host
installieren
liegen
problem
server
spieler
text
umgehen
verschicken
-
Hey Leute, ich bin am verzweifeln. Ich habe eine kleine Verwaltung für Sportaktivitäten bei denen man sich über neue spieltermine informieren kann.
Wenn ein neuer Spieltermin ansteht will ich alle spieler darüber benachrichtigen.
Ein einfaches Formular mit Datum, Location und Uhrzeit wird ausgefüllt, wodurch automatische eine Mail an alle Spieler gesendet werden soll:
// Daten des formulars auslesen $from = "from:Admin@beachteam.de\n"; $from .= "Content-Type: text/html\n"; $betreff = $_POST["subject"]; $headline = $_POST["headline"]; $text = $_POST["text"]; $userIDs = $_POST["players"]; // Über alle spieler Iterieren foreach ($userIDs as $userID) { $data = $functions->getUserDataByUserID($userID); $email = $data->email; $mailtext = "<h3 style=\"background-color:#ffa943\">Hallo ".$data->prename."</h3> <p>$text</p> <p><font size=\"-1\">Dies ist eine automatisch generierte Email, falls du Probleme hast und antworten willst schreibe bitte an Bla@muh.de.<br/> Falls du nicht über neue Termine per Mail benachrichtigt werden willst kannst du die Einstellungen in deinem Profil beim Beachteam ändern.</font></p>"; // Mail absenden mail($email,$betreff,$mailtext,$from); }
Die Funktion funktioniert wunderbar und es werden Mails zugestellt, allerdings bekommt jeder Spieler nicht eine Mail, sondern gleich die 5-fache ausfertigung. Manchmal sogar unterschiedlich, einer 3mal, der andere 2mal und der nächste 5mal, was ich mir absolut nicht erklären kann.
wenn ich die Zeile
mail($email,$betreff,$mailtext,$from);
durch folgende ersetze:
echo "Mail sent to: $email<br/>";
Dann bekomme ich eine wunderschöne Testausgabe, jeder Spieler samt seiner Mailadresse taucht genau einmal auf, es sollte also alles klappen.
Das Problem scheint also an der mail(); funktion zu liegen. Muss da irgendwas beachtet werden? Läuft die Schleife zu schnell sodass die Mail-Funktion nicht nach kommt? Muss man einen Sleep-timer einbauen oder etwas ähnliches?
Hilfe sehr erwünscht!
Beitrag zuletzt geändert: 20.12.2009 16:46:59 von beachteam -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hm ja aber das merkwürdige is ja wenn ich da noch eine kleine If-Anweisung reinhänge
if ($userID == 1337) { // Mail senden }
sodass nur ein bestimmter Spieler die Mail erhalten soll wird sie wunderbar einfach zugestellt. Woran kann das denn bei Lima liegen? Das muss man doch irgendwie umgehen können?
Und dieser PHPMailer entkoppelt das ganze Mailsystem von Lima oder wie verstehe ich das?
-
Mit PHPMailer versendest du die E-Mail nicht über lima, sondern über einen externen Mailserver.
Aber ich wüsste nicht, dass man das umgehen kann, da in dem Script kein Fehler ist.
LG cookies -
Hmm ok würde das gerne installieren, aber scheinbar muss man da ja einen Path in der PHP.ini setzte, die man bei Lima nicht bearbeiten kann oder? Zumindest habe ich nichts gefunden!
Bzw noch die Frage welche Daten ich bei
$mail->IsSMTP(); // per SMTP verschicken $mail->Host = "auth.smtp.kundenserver.de"; // SMTP-Server $mail->SMTPAuth = true; // SMTP mit Authentifizierung benutzen $mail->Username = "mxxxxxxxx-x"; // SMTP-Benutzername $mail->Password = "xxxxxx"; // SMTP-Passwort
eingeben muss? Kenne mich mit SMTP leider nicht so aus -
beachteam schrieb:
Hmm ok würde das gerne installieren, aber scheinbar muss man da ja einen Path in der PHP.ini setzte, die man bei Lima nicht bearbeiten kann oder? Zumindest habe ich nichts gefunden!
Bzw noch die Frage welche Daten ich bei
$mail->IsSMTP(); // per SMTP verschicken $mail->Host = "auth.smtp.kundenserver.de"; // SMTP-Server $mail->SMTPAuth = true; // SMTP mit Authentifizierung benutzen $mail->Username = "mxxxxxxxx-x"; // SMTP-Benutzername $mail->Password = "xxxxxx"; // SMTP-Passwort
eingeben muss? Kenne mich mit SMTP leider nicht so aus
Melde dich zum Beispiel bei gmx.de an mit der Adresse sportaktivitäten@gmx.de (nur als Beispiel). Dann müsstest du folgendes eingeben:
$mail->IsSMTP(); // per SMTP verschicken $mail->Host = "smtp.gmx.net"; // SMTP-Server $mail->SMTPAuth = true; // SMTP mit Authentifizierung benutzen $mail->Username = "sportaktivitäten@gmx.de"; // SMTP-Benutzername (bzw. halt dann die richtige E-Mail-Adresse) $mail->Password = "GMX PASSWORT"; // SMTP-Passwort
Falls dir das nicht passt, musst du selber deine richtigen Daten angeben, dann kann ich dir leider nicht helfen.
mfg
company-red -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage