Exception bei Versand an multiple Empfänger using Swiftmailer


tklustig

Erfahrenes Mitglied
#1
Ich möchte eine Mail an multiple Empfänger verschicken. Das mache ich so:
PHP:
       $SendObject = Yii::$app->mailer->compose()->setFrom($string)
                                ->setTo(array('goetz.bewerber@gmx.net','schulze.bewerber@gmail.com','susanne.bewerber@web.de'))
                                ->setHtmlBody($model->bodytext)
                                ->setSubject($model->betreff)
                                ->setTextBody($model->bodytext);
                        $SendObject->send();
Wenn ich im Feld setTo eine String mit exact denselbem Inhalt übergebe, bekomme ich die Fehlermeldung
Code:
Address in mailbox given ['goetz.bewerber@gmx.net','schulze.bewerber@gmail.com','susanne.bewerber@web.de']
does not comply with RFC 2822, 3.6.2.
So definiere ich den String
Code:
$ZieladresseTest = "'goetz.bewerber@gmx.net','schulze.bewerber@gmail.com','susanne.bewerber@web.de'";
Und dieser Code verursacht die Exception:

PHP:
                $SendObject = Yii::$app->mailer->compose()->setFrom($string)
                                // $ZieladresseTest = "'goetz.bewerber@gmx.net','schulze.bewerber@gmail.com','susanne.bewerber@web.de'";
                                ->setTo(array($ZieladresseTest))
                                ->setHtmlBody($model->bodytext)
                                ->setSubject($model->betreff)
                                ->setTextBody($model->bodytext);
                        $SendObject->send();
Weiß jemand,
  1. warum diese Exception ausgeworfen wird
  2. was ich tun muss, damit sie nicht ausgeworfen wird
  3. Bedingung:setTo() muss eine Variable übergeben werden können!
 

Kalito

Erfahrenes Mitglied
#2
Hallo,

naja, nur weil du um einen String ein array packst ist es noch lange kein Array. Um aus einen String ein Array zu bauen, kannst du explode verwenden:

PHP:
$adress_array = explode(",", $ZieladresseTest);

$SendObject = Yii::$app->mailer->compose()->setFrom($string)
                                ->setTo($adress_array)
                                ->setHtmlBody($model->bodytext)
                                ->setSubject($model->betreff)
                                ->setTextBody($model->bodytext);
                        $SendObject->send();
Ich bin mir nur gerade nicht sicher ob es nicht besser ist, dass der String $ZieladresseTest ohne die Hochkommatas (') und nur in "" stehen muss.
 

tklustig

Erfahrenes Mitglied
#3
Yuup. Habe mir bereits mittels explode() aus dem String ein Array gebastelt. Jetzt funktioniert es, wie gewollt.
Dieser Thread kann als erfolgreich gelöst geschlossen werden!
Danke für Dein Feedback. Super Forum, kompetente Programmiere hier unterwegs. Da habe ich schon ganz anderes erlebt.
Bye...
 

Neue Beiträge