PHPMailer multiple attachments in multiple Mails


Jan-Frederik Stieler

Monsterator
Moderator
Hi,
ich hab ein Formular welches per Mail zweimal verschickt wird. Dieses Formular hat auch ein Uploadformular für Dateianhänge.
Nun hab ich das problem das die Dateien immer nur in einer Mail landen.
Ich hab schon versucht `$mail->addAttachment()` in eine variable auszulagern. aber das scheint irgendwie auch nicht zu funktionieren und leider muss ich das addAttachment im foreach drinnen halten um das für alle Dateien gefüllt zu bekommmen bzw. mehrfach drinnen zu haben.

Kann mir irgendwer mal auf die Sprünge helfen wie ich das am besten hin bekomme das die Dateien in beiden Mails landen?

https://pastebin.com/v7jwbZev
Mir geht es um Zeile 181.

Viele Grüße
 

Sempervivum

Erfahrenes Mitglied
Wenn ich das richtig sehe, ist der Grund, dass Du nach dem ersten Senden clearAttachments() aufrufst. Dadurch werden die Anhänge gelöscht und sind beim zweiten Senden nicht mehr vorhanden. Wenn Du das clearAttachments weg lässt, sollte es eigentlich funktionieren.
 

Jan-Frederik Stieler

Monsterator
Moderator
Hi,
nein dann geht auch die zweite Mail nicht mehr raus.
Soviel ich weiß muss man bei PHPMailer alles reseten und dann wieder füllen für eine zweite Mail.
Und ich geb ja auch eine Variable aus welche gefüllt wurde bevor clearAttachments() ausgeführt wird.
 

Sempervivum

Erfahrenes Mitglied
Kann ich nicht reproduzieren. Ich habe es mit einem Kontaktformular getestet, das ich gerade zur Hand hatte (basierend auf dem Tut bei HTML-Seminar) und es funktioniert einwandfrei:
PHP:
        $mailer = new PHPMailer();
        $mailer->CharSet = 'UTF-8'; // Charset setzen (für richtige Darstellung von Sonderzeichen/Umlauten)
        $mailer->setFrom($email, $name); // Absenderemail und -name setzen
        $mailer->addAddress($receiver); // Empfängeradresse
        $mailer->isHTML(true);
        $mailer->Subject = 'Neue Nachricht vom Kontaktformular'; // Betreff der Email
        $mailer->Body = '<h3>Neue Nachricht von: ' . $name . '</h3>
               <h4>E-Mail-Adresse: ' . $email . '</h4>
               <h2>Betreff: ' . $subject . '</h2>
               <p>Nachricht 1'; // Inhalt der Email
        /**
         * Überprüfung, ob Mail abgesendet wurde, wenn nicht: Fehlermeldung ausgeben, wenn ja: Erfolgsmeldung ausgeben
         */
        $mailer->addAttachment("bilder/buttonup.png");
        $mailer->addAttachment("bilder/arrow-double-up.svg");
        if (!$mailer->send()) {
            $errors[] = HTML_ERROR_START . 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es in ein paar Minuten nochmal!' . HTML_ERROR_END;
        } else {
            $success = HTML_SUCCESS_START . 'Ihre Nachricht wurde erfolgreich abgesendet!' . HTML_SUCCESS_END;
        }
        $mailer->ClearAllRecipients();
        $mailer->addAddress($receiver2);
        $mailer->Body = '<h3>Neue Nachricht von: ' . $name . '</h3>
        <h4>E-Mail-Adresse: ' . $email . '</h4>
        <h2>Betreff: ' . $subject . '</h2>
        <p>Nachricht 2'; // Inhalt der Email

        if (!$mailer->send()) {
            $errors[] = HTML_ERROR_START . 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es in ein paar Minuten nochmal!' . HTML_ERROR_END;
        } else {
            $success = HTML_SUCCESS_START . 'Ihre Nachricht wurde erfolgreich abgesendet!' . HTML_SUCCESS_END;
        }
 

Jan-Frederik Stieler

Monsterator
Moderator
Hi,
doch Du hattest recht.
Ich Depp hab nicht dran gedacht das meine mails bei Google im Spamordner gelandet sind und ich dachte die wären nicht rausgegangen :facepalm:

Nur der Dateiupload ist echt noch eine frickelige Sache. Ist halt echt sone richtige Einladung einen Server versuche nzu hacken.