Der Inhalt dieses Artikels handelt von der E-Mail-Versandfunktion von yii2, die einen gewissen Referenzwert hat. Jetzt kann ich sie mit allen Freunden in Not teilen.
Zuallererst, um die zu implementieren E-Mail-Funktion, wir müssen yii2 verstehen. Es gibt das Konzept der E-Mail-Klasse
yii2 stellt uns die SwiftMailer-Erweiterung zur Verfügung, um unser E-Mail-Versandproblem zu lösen.
Was ist SwiftMailer?
Swift ist eine PHP-Funktionsbibliothek, die für den E-Mail-Versand vollständig objektorientierte Codierung verwendet. Swift verlässt sich nicht auf die Funktion mail() von PHP, da die Verwendung dieser Funktion zum Versenden mehrerer E-Mails höhere Serverressourcen beansprucht. Swift versendet E-Mails schneller und effizienter, indem es eine direkte Verbindung zu einem SMTP-Server oder MTA herstellt.
Konfigurieren Sie zunächst unsere mailer
-Komponente in unserer main.php
//主要是对组件中各种必要的发送邮箱的属性进行配置'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'useFileTransport' =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.qq.com', //每种邮箱的host配置不一样 'username' => '11150****1@qq.com', 'password' => '*****',//密码不是指的登录密码 'port' => '465', 'encryption' => 'ssl', ], ],
Rufen Sie diese Komponente im Controller oder Modell auf.
$mailer = \Yii::$app->mailer->compose('seekpass',['html'=>'html','adminuser'=>$post['Admin']['adminuser'],'token'=>$_SERVER['HTTP_HOST'].Url::toRoute(['manage/emailchangepass'])."×tamp=".$time."&token=".$token."&adminuser=".$adminuser]); $mailer ->setFrom("1115007981@qq.com")//设置发件人,虽然写了一遍但还是要写 ->setTo("1115007981@qq.com")//设置收件人 ->setSubject("黑势力科技")//摘要 ->send(); //如发送成功,则返回一个bool类型的值
Hier müssen wir über mehrere Methoden sprechen.
1. Die compose()-Methode in der Mailer-Komponente
compose($view = null, array $params = [])
$view ist die E-Mail-Vorlage, die geladen werden muss. Die Standardeinstellung ist common/Mailer (bestimmt durch viewPath). Attribut im Konfigurationsmailer) )
$params kann verschiedene Parameter enthalten, die wir in die Vorlage laden müssen, wie zum Beispiel unser „Token“, „Adminuser“ und andere Parameterwerte oben. Es ist erwähnenswert, dass , wenn die Schlüssel des Werts html
und text
lauten, das Laden unserer HTML-Blockvorlage bzw. unserer Textblockvorlage bedeutet.
Erstellen Sie unsere E-Mail-Vorlage in der Ansicht
Wir öffnen unser Common/views/mail/layout und sehen die Mailer-Komponente Die Basisvorlage wurde
für uns geschrieben, daher müssen wir nur einen einfachen HTML-Code schreiben und dann das Layout aufrufen
Wir schreiben, was wir wollen, in das HTML-Format des E-Mail-Ordners zum Senden von Dateien
//例如:<P>尊敬的管理员<?=$adminuser;?></P><p> 你好</p><p>你的重置密码连接为:</p><a href="http://<?=$token?>">http://<?=$token?></a><p>请在5分钟之内重置密码,否则密码想会失效</p> //token 为我们在compose中传入的值
So versenden wir E-Mails in yii2
Um die E-Mail-Funktion zu implementieren, müssen wir zunächst verstehen, dass yii2 das Konzept der E-Mail-Klassen hat
yii2 bietet uns mit der Erweiterung „swiftMailer“, um unser E-Mail-Versandproblem zu lösen.
Was ist SwiftMailer?
Swift ist eine PHP-Funktionsbibliothek, die für den E-Mail-Versand vollständig objektorientierte Codierung verwendet. Swift verlässt sich nicht auf die Funktion mail() von PHP, da die Verwendung dieser Funktion zum Versenden mehrerer E-Mails höhere Serverressourcen beansprucht. Swift versendet E-Mails schneller und effizienter, indem es eine direkte Verbindung zu einem SMTP-Server oder MTA herstellt.
Konfigurieren Sie zunächst unsere mailer
-Komponente in unserer main.php
//主要是对组件中各种必要的发送邮箱的属性进行配置'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'useFileTransport' =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.qq.com', //每种邮箱的host配置不一样 'username' => '11150****1@qq.com', 'password' => '*****',//密码不是指的登录密码 'port' => '465', 'encryption' => 'ssl', ], ],
Rufen Sie diese Komponente im Controller oder Modell auf.
$mailer = \Yii::$app->mailer->compose('seekpass',['html'=>'html','adminuser'=>$post['Admin']['adminuser'],'token'=>$_SERVER['HTTP_HOST'].Url::toRoute(['manage/emailchangepass'])."×tamp=".$time."&token=".$token."&adminuser=".$adminuser]); $mailer ->setFrom("1115007981@qq.com")//设置发件人,虽然写了一遍但还是要写 ->setTo("1115007981@qq.com")//设置收件人 ->setSubject("黑势力科技")//摘要 ->send(); //如发送成功,则返回一个bool类型的值
Hier müssen wir über mehrere Methoden sprechen.
1. Die compose()-Methode in der Mailer-Komponente
compose($view = null, array $params = [])
$view ist die E-Mail-Vorlage, die geladen werden muss. Die Standardeinstellung ist common/Mailer (bestimmt durch viewPath). Attribut im Konfigurationsmailer) )
$params kann verschiedene Parameter enthalten, die wir in die Vorlage laden müssen, wie zum Beispiel unser „Token“, „Adminuser“ und andere Parameterwerte oben. Es ist erwähnenswert, dass , wenn die Schlüssel des Werts html
und text
lauten, das Laden unserer HTML-Blockvorlage bzw. Textblockvorlage bedeutet.
Erstellen Sie unsere E-Mail-Vorlage in der Ansicht
Wir öffnen unser Common/views/mail/layout und sehen die Mailer-Komponente Die Basisvorlage wurde
für uns geschrieben, daher müssen wir nur einen einfachen HTML-Code schreiben und dann das Layout aufrufen
Wir schreiben, was wir wollen, in das HTML-Format des E-Mail-Ordners zum Senden von Dateien
//例如:<P>尊敬的管理员<?=$adminuser;?></P><p> 你好</p><p>你的重置密码连接为:</p><a href="http://<?=$token?>">http://<?=$token?></a><p>请在5分钟之内重置密码,否则密码想会失效</p> //token 为我们在compose中传入的值
Dies ist die Funktion zum Senden von E-Mails in yii2
Verwandte Empfehlungen:
Yii2-Vorgang „Passwort vergessen“ basierend auf E-Mail-Verifizierung
Autorisierungsüberprüfung von yii2 zurückgesetzt
Das obige ist der detaillierte Inhalt vonyii2 E-Mail-Funktion senden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!