Antworten auf deine Fragen:
Neues Thema erstellen

Mehrere Mails mit verschiedenen Inhalt von PHPMailer senden

Fugel

rebmeM

PSD Beta Team
Hallo Leute,

ich versuche gerade mittels PHPMailer mehrere Emails mit verschiedenen Inhalten zu versenden, leider bekommt immer nur die erste Emailadresse mehrer gleiche Nachrichten. Ich gehe dabei so vor:

PHP:
$mail = new PHPMailer(true);                              // Passing `true` enables exceptions
try {
//Server settings
    $mail->SMTPDebug = 2;                                 // Enable verbose debug output
//$mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'XXX';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'XXX';                 // SMTP username
    $mail->Password = 'XXX';                           // SMTP password
    $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = XXX;                                    // TCP port to connect to
    //Set From
    $mail->SetFrom('XXX');
//Recipients
    foreach ($alert->getAlert() as $key => $val) {
        $mail->addAddress($key);     // Add a recipient
        $mail->Body = 'Nachricht: '.$key;
        $mail->AltBody = 'Nachricht: '.$key;
//Content
        $mail->isHTML(true);                                  // Set email format to HTML
        $mail->Subject = 'Betreff';
        $mail->send();
    }

    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}

Hat jemand eine Idee was ich da falsch mache?
 

A.D.

Noch nicht viel geschrieben

Hallo,

sicher, dass nur an die erste Mailadresse gesendet wird?

Ich würde alles in die for-Schleife packen. Ich nutze zwar PHPMailer nicht, aber hinter addAdress() könnte ein Array liegen. Beim ersten Schleifendurchgang gibt es nur eine Mailadresse, beim zweiten die erste Mailadresse und die zweite, beim dritten Schleifendurchgang dann alle drei Mailadressen (sprich die erste Mailadresse bekommt drei Nachrichten).
Code:
foreach ($alert->getAlert() as $key => $val) {
    $mail = new PHPMailer(true);
    try {
            $mail->SMTPDebug = 2;
        //$mail->isSMTP();
            $mail->Host = 'XXX';
            $mail->SMTPAuth = true;
            $mail->Username = 'XXX';
            $mail->Password = 'XXX';
            $mail->SMTPSecure = 'tls';
            $mail->Port = XXX;
            $mail->SetFrom('XXX');
            $mail->addAddress($key);
            $mail->Body = 'Nachricht: '.$key;
            $mail->AltBody = 'Nachricht: '.$key;
            $mail->isHTML(true);
            $mail->Subject = 'Betreff';
            $mail->send();
        echo 'Message has been sent';   
    } catch (Exception $e) {
           echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
    }
}
 

Fugel

rebmeM

PSD Beta Team
Danke für deine Antwort,

ich frage mich allerdings was die for-Schleife daran ändern soll? Ich hab auch gerade festgestellt das empfänger in den Emails sehen können an wen die Nachricht noch geschickt wurde, das geht natürlich überhaupt nicht. Wie kann ich das abstellen?
 

A.D.

Noch nicht viel geschrieben

Hallo,

In Deinem Beispiel erstellst Du ein neues PHPMailer-Objekt außerhalb der Schleife. Innerhalb der Schleife fügst Du neue Eigenschaften hinzu. Das Objekt merkt sich (teilweise) diese Eigenschaften (beispielsweise an wen die Mail geht).
Wenn Du das Objekt aber immer wieder neu innerhalb der Schleife erstellst (wie in meinem Beispiel), weiß es ja nichts von den anderen Eigenschaften. Sprich es gibt pro Schleifendurchgang immer nur ein Empfänger und einen Inhalt.

EDIT: Wenn Du nach Deiner send()-Methode noch schreibst:
Code:
$mail->clearAddresses();
Sollte es auch funktionieren. (Ich weiß aber nicht, ob in Deiner Version von PHPMailer diese Funktion so heißt.)

MFG A.D.
 
Zuletzt bearbeitet:

Fugel

rebmeM

PSD Beta Team
Also danke, jetzt läuft alles wie es soll.

Jetzt hab ich nur noch eine offene Frage:

Wieviele Emails kann denn ein Server mittels dieses Scripts in einem Ritt (also eine pro Schleifendurchlauf) verschicken bevor der Server die Arbeit verweigert? Ich habe meine Seite bei Strato liegen.
 

Curanai

Aktives Mitglied

Hi, das ist von Hoster zu Hoster unterschiedlich. HostEurope hat hierzu eine Konfiguration, wo man diese "Sicherheit" (damit niemand darüber spamt) deaktivieren kann (sonst macht der Account nach x Mails eben zu). Bei 1&1 schaut man grob ab der 500. Mail binnen eines Zeitfensters mal genauer hin, bei Mittwald 100 E-Mails binnen fünf Minuten ... Du wirst also mal eine Anfrage stellen müssen, da es variiert.

Achtung: Hoster achten ebenfalls darauf, wieviele E-Mails zeitgleich abgehen. Wäre die E-Mail inhaltlich für alle gleich (bspw. bei unpersonalisierten Newslettern), gibt es ebenfalls ein Maß, bevor "zu" ist. 60 bis 80 ... meine ich, war so ein guter Erfahrungsschnitt.
 

msa1989

Bin da

Hallo Fugel,
ich weiß nicht ob das für dich eventuell eine alternative ist weil es zu beginn schon etwas Aufwand in der Einrichtung kostet:

Ich nutze seit einiger Zeit nur noch Amazon SES (). Das ist ein Dienst von Amazon um E-Mails zu verschicken. Die ersten 62.000 E-Mails sind kostenfrei pro Monat. (Je nach Anhang kommen Transfergebühren dazu - bei mir bisher nie mehr als 1$ im Monat).

Der Vorteil an diesem Service ist, dass du dir sicher sein kannst dass deine E-Mail nicht im SPAM Ordner landet. Für nen OnlineShop bzw. für nen Blog mit Benachrichtigungsservice ist das schon relativ wichtig.

Wenn man wie ich nur die Basisversion nimmt kann man:
50.000 E-Mails in 24 Stunden verschicken und max. 14 / Sekunde.

Das ganze funktioniert mit PHPMailer wunderbar und wenn es jemanden wichtig ist dass die E-Mail nicht nur gesendet sondern auch im Posteingang landet, dann sollte der Weg definitiv in Betracht gezogen werden.

Wenn du wissen willst wie gut die Mails sind die du bisher verschickst:
https://www.mail-tester.com/
Schick da eine E-Mail hin und sieh dir das Ergebnis an. Bei SES hab ich noch nie weniger als ne 9 erlebt (10 ist das beste).
 

Curanai

Aktives Mitglied

Hi msa1989,

das ist ein für mich wertvoller Tipp in einem derzeit zu schreibenden Projekt, wo es um viele E-Mails geht.

Vielen Dank für die Nennung - das gucke ich mir jetzt an.

Allerdings wäre zu klären, inwiefern DSGVO angefasst wird, wenn personalisierte E-Mails verschickt werden. Das ist Amazon, verdammt ... nicht vergessen! Eine der echten Datenkraken!

Beste Grüße
 

AliceG

Nicht mehr ganz neu hier

was ich noch empfehlen kann ist mailChimp (https://mailchimp.com/)
Habe richtig gute Erfahrungen damit gemacht, wie mobile Templates erstellen, Empfänger Listen als cvs laden. Der ganze Newsletter Registrierung und Abmeldung Prozess.
Bei Newsletter-artigen Mails muss man eben bei uns vorsichtig sein. Z.B. ein Link zum Abmelden ist Pflicht. Das kann böse enden wenn ein Empfänger darauf anlegen will, böse zu sein ;-).
 

Fugel

rebmeM

PSD Beta Team
was ich noch empfehlen kann ist mailChimp (https://mailchimp.com/)
Habe richtig gute Erfahrungen damit gemacht, wie mobile Templates erstellen, Empfänger Listen als cvs laden. Der ganze Newsletter Registrierung und Abmeldung Prozess.
Bei Newsletter-artigen Mails muss man eben bei uns vorsichtig sein. Z.B. ein Link zum Abmelden ist Pflicht. Das kann böse enden wenn ein Empfänger darauf anlegen will, böse zu sein ;-).
Lässt sich leider nicht in eine bestehnde Software einbauen und leider ist es aus rechtlicher sicht in Deitschland nicht möglich diese sicher zu verwenden. Danke dennoch.
 

AliceG

Nicht mehr ganz neu hier

Lässt sich leider nicht in eine bestehnde Software einbauen und leider ist es aus rechtlicher sicht in Deitschland nicht möglich diese sicher zu verwenden. Danke dennoch.

Bist du sicher wegen der "rechtlicher Sicht in Deutschland" ... denn gerade MailChimp erlaubt dir keinen Newsletter ohne Abmelde-Link rauszuschicken. Auch wenn du den in dein Template nicht einbaust, wird MailChimp es standardmäßig tun. Ich kenne einige Agenturen, die diesen Dienst verwenden. Würde mich wundern, wenn da tatsächlich rechtliche Probleme geben sollte.
 

Fugel

rebmeM

PSD Beta Team
Es geht nicht nur um den Abmeldelink, sondern viel mehr um die Daten die im Hintergrund verarbeitet werden. Zumindest muss hier ein Vertrag der Datenverarbeitung zwischen MailChimp und dem Benutzer geschlossen werden.
 

Curanai

Aktives Mitglied

Würde es nur um den Abmelde-Link gehen, könnten Mail-Harvester wieder lukrativ werden. Double-Opt-In (also wo kommt die Adresse her und geht es über das simple Eintragen hinaus (sprich: E-Mail mit "vielen Dank - bitte hier klicken zum Bestätigen") ist deutlich relevanter als nur ein Link zum Austragen (der dann doch wieder nur bestätigt, dass er teilnehmen will :D).

Es gibt noch mehr derartiger Dienste wie MailChimp - denn die sitzen in den USA. Da würde ich eher auf einen deutschen Anbieter zurückgreifen - erwähnt sei da CleverReach. Die haben APIs zu den typischsten Anforderungen: Wordpress, xt:Commerce, Shopware, openCart, Magento, amazon, ... blaaaah ... ewig lange Liste. ;) Hier ist alles drin - inkl. erwähnter An- und Abmeldung.

Viel Erfolg wünsche ich.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.359
Mitglieder
67.535
Neuestes Mitglied
QuestionMark
Oben