Ich kann nicht endlich verstehen, wie man die swiftMailer-Erweiterung in Yii2 verwendet. Danach habe ich zu diesem Thema keine Fragen gefunden, die Aufgabe ist trivial, aber bis zum Ende konnte ich nicht verstehen.
Es gibt Beispiele, die den gesamten Versandzyklus des Briefes nicht näher beschreiben oder ich verstehe etwas nicht 🙁
Ich möchte ein konkretes Arbeitsbeispiel erhalten. Vielen Dank.
PS Ich habe Domain-Einträge angepasst MX, DKIM, SPF hinzugefügt.
UPD (einige Antworten):
E-Mail, die im Feld „Von“ übergeben wird, sie wird standardmäßig im Feld „Rücksendepfad“ abgelegt, muss das sein bestehende Adresse. Einige Anbieter erlauben das Versenden von E-Mails von nicht existierenden E-Mail-Adressen nicht.
Dency GB
Stellen Sie sicher, dass Sie Ihre Anwendung in der Produktionsumgebung initialisiert haben, um E-Mails von Ihrer Anwendung zu senden, andernfalls werden sie in den Mailoutput-Ordner geschrieben. Oder bearbeiten Sie die Konfigurationsdatei manuell wie folgt.
Im Komponentenabschnitt Ihrer common/main-local.php
'mail' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@backend/mail',
'useFileTransport' => false,//set this property to false to send mails to real email addresses
//comment the following array to send mail using php's mail function
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => '[email protected]',
'password' => 'password',
'port' => '587',
'encryption' => 'tls',
],
],
In Ihrem Controller
\Yii::$app->mail->compose('your_view', ['params' => $params])
->setFrom([\Yii::$app->params['supportEmail'] => 'Test Mail'])
->setTo('[email protected]')
->setSubject('This is a test mail ' )
->send();
Das sollte funktionieren! Hoffe das wird dir helfen!
Vielen Dank! Ich habe die Antwort bereits gefunden. Es scheint, manche Provider erhalten nur vorhandene E-Mail im Feld „Rückweg“
– Fräulein
30. Juli 2014 um 7:36 Uhr
Wenn Sie sich das Beispiel für das Zurücksetzen des Passworts ansehen, sollte dies der Fall sein mailernicht mail yourApp->frontend->models->PasswordResetRequestForm.php
– johnsnails
29. November 2014 um 22:42 Uhr
Hallo Dency GB, ich bin neu bei Yii2 und Framework. Können Sie mir bitte erklären, wo ich den für den Controller vorgeschlagenen Code eingeben soll? Soll ich es unter einem neuen Controller / einer neuen Aktion platzieren und wie man diese verwendet, oder unter Erstellen oder Aktualisieren platzieren. Vielen Dank.
– Joshi
9. Januar 2015 um 21:20 Uhr
uselma
Sie müssen den SMTP-Transport nicht mit Swiftmailer verwenden, sondern nur entfernen 'useFileTransport' => true in der Konfigurationsdatei (app/config/web.php im Basis-Template) und die Mails fließen.
Achtung: Diese Option ist nicht mehr verfügbar, da Mandrill von Mailchimp gekauft wurde
Manchmal können Probleme bei der Verwendung von SwiftMailer auftreten, die nicht von Ihnen abhängig sind. Wie damals, als ich den E-Mail-Server mail.ru benutzte. Ich habe eine Lösung in der Laravel-Community gefunden und in Yii2 implementiert.
Sie können alternative Dienste wie verwenden https://mandrillapp.com/ (12.000 E-Mails pro Monat, 250 innerhalb einer Stunde sind kostenlos) und die Einrichtung wie folgt:
'host' => 'smtp.mandrillapp.com',
'username' => '[email protected]',
'password' => 'oDLKswXZIkry8634f1jCDg', // new generated API key by mandrill
'port' => '587',
'encryption' => 'tls',
Wenn Sie Gmail-E-Mail verwenden, können Sie auch mit Sicherheitsproblemen konfrontiert werden. Sie können die Sicherheit ausschalten, indem Sie der Anwendung erlauben, Ihr Google Mail-Konto zu verwenden.
Wenn Sie sich mit Google angemeldet haben, verwenden Sie die folgenden Links: