Heim  >  Artikel  >  Backend-Entwicklung  >  yii2 E-Mail-Funktion senden

yii2 E-Mail-Funktion senden

不言
不言Original
2018-04-19 14:45:132417Durchsuche

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.

Konfigurationsumgebung
  1. 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',
                ],
            ],
  1. 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'])."&timestamp=".$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.

  1. 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.

Konfigurationsumgebung
  1. Konfigurieren Sie zunächst unsere mailer-Komponente in unserer main.php

//主要是对组件中各种必要的发送邮箱的属性进行配置&#39;mailer&#39; => [                &#39;class&#39; => &#39;yii\swiftmailer\Mailer&#39;,                &#39;viewPath&#39; => &#39;@common/mail&#39;,                &#39;useFileTransport&#39; =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
                &#39;transport&#39; => [                    &#39;class&#39; => &#39;Swift_SmtpTransport&#39;,                    &#39;host&#39; => &#39;smtp.qq.com&#39;,  //每种邮箱的host配置不一样
                    &#39;username&#39; => &#39;11150****1@qq.com&#39;,                    &#39;password&#39; => &#39;*****&#39;,//密码不是指的登录密码
                    &#39;port&#39; => &#39;465&#39;,                    &#39;encryption&#39; => &#39;ssl&#39;,
                ],
            ],
  1. Rufen Sie diese Komponente im Controller oder Modell auf.

$mailer = \Yii::$app->mailer->compose(&#39;seekpass&#39;,[&#39;html&#39;=>&#39;html&#39;,&#39;adminuser&#39;=>$post[&#39;Admin&#39;][&#39;adminuser&#39;],&#39;token&#39;=>$_SERVER[&#39;HTTP_HOST&#39;].Url::toRoute([&#39;manage/emailchangepass&#39;])."&timestamp=".$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.

  1. 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn