Wenn dies nur für den Test ist, warum setzen Sie nicht useFileTransport
so E-Mails werden in den Ordner Ihrer Wahl statt gesendet werden gespeichert. Gehen Sie so konfigurieren, dass es wie folgt aus:
'components' => [
// ...
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => true,
],
],
Dadurch werden alle E-Mails im @runtime/mail
Ordner speichern, wenn Sie anderes Set wollen:
'mailer' => [
// ...
'fileTransportPath' => '@runtime/mail', // path or alias here
],
Wenn Sie wollen immer noch E-Mails senden und Empfänger Sie außer Kraft setzen kann zum Beispiel yii\swiftmailer\Mailer
Klasse erweitern.
class MyMailer extends \yii\swiftmailer\Mailer
{
public $testmode = false;
public $testemail = '[email protected]';
public function beforeSend($message)
{
if (parent::beforeSend($message)) {
if ($this->testmode) {
$message->setTo($this->testemail);
}
return true;
}
return false;
}
}
konfigurieren es:
'components' => [
// ...
'mailer' => [
'class' => 'namespace\of\your\class\MyMailer',
// the rest is the same like in your normal config
],
],
Und Sie können es auf die gleiche Weise verwenden Sie mailer
Komponente die ganze Zeit verwenden. Wenn es Zeit ist, den Testmodus zu wechseln, die die Konfiguration ändern:
'mailer' => [
'class' => 'namespace\of\your\class\MyMailer',
'testmode' => true,
'testemail' => '[email protected]', // optional if you want to send all to address different than default [email protected]
// the rest is the same like in your normal config
],
Damit wird jede E-Mail mit Ihrer Empfängeradresse außer Kraft gesetzt werden.
genial! so eine vollständige Antwort! Vielen Dank!! – LXXIII