yii2 envoyer une fonction d'e-mail

不言
Libérer: 2023-03-24 12:14:01
original
2474 Les gens l'ont consulté

Le contenu de cet article concerne la fonction d'envoi d'e-mails de yii2, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Tout d'abord, pour implémenter le. fonction email, nous devons comprendre yii2 Il y a le concept de classe email

yii2 nous fournit l'extension swiftMailer afin de résoudre notre problème d'envoi d'email.

Alors, qu'est-ce que SwiftMailer ?

Swift est une bibliothèque de fonctions PHP qui utilise un codage entièrement orienté objet pour l'envoi d'e-mails. Swift ne s'appuie pas sur la fonction mail() de PHP, car son utilisation pour envoyer plusieurs e-mails occupera des ressources de serveur plus élevées. Swift envoie des e-mails plus rapidement et plus efficacement en se connectant directement à un serveur SMTP ou MTA.

Configurer l'environnement
  1. Configurez d'abord notre composant mailer dans notre 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',
                ],
            ],
Copier après la connexion
Copier après la connexion
  1. Appelez ce composant dans le contrôleur ou le modèle.

$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类型的值
Copier après la connexion
Copier après la connexion

Ici, nous devons parler de plusieurs méthodes.
1. La méthode compose() dans le composant mailer

compose($view = null, array $params = [])
$view est le modèle d'e-mail qui doit être chargé. La valeur par défaut est common/Mailer (déterminée par viewPath. attribut dans le mail de configuration) )

$params peut contenir divers paramètres que nous devons charger dans le modèle, tels que notre « jeton », « adminuser » et d'autres valeurs de paramètres ci-dessus. Il convient de mentionner que lorsque les clés de la valeur sont html et text signifie charger respectivement notre modèle de bloc html et notre modèle de bloc de texte.

  1. Créons notre modèle d'e-mail en vue

Nous ouvrons notre common/views/mail/layout et nous pouvons voir le composant mailer Le modèle de base a été écrit

pour nous, il nous suffit donc d'écrire un simple code HTML puis d'appeler la mise en page

Nous écrivons ce que nous voulons dans le dossier de messagerie au format HTML pour l'envoi de fichiers

//例如:<P>尊敬的管理员<?=$adminuser;?></P><p> 你好</p><p>你的重置密码连接为:</p><a href="http://<?=$token?>">http://<?=$token?></a><p>请在5分钟之内重置密码,否则密码想会失效</p>  //token 为我们在compose中传入的值
Copier après la connexion
Copier après la connexion

C'est ainsi que nous envoyons des e-mails dans yii2

Tout d'abord, pour implémenter la fonction de courrier électronique, nous devons comprendre que yii2 a le concept de classes de courrier électronique

yii2 fournit nous avec l'extension SwiftMailer afin de résoudre notre problème d'envoi d'email.

Alors, qu'est-ce que SwiftMailer ?

Swift est une bibliothèque de fonctions PHP qui utilise un codage entièrement orienté objet pour l'envoi d'e-mails. Swift ne s'appuie pas sur la fonction mail() de PHP, car son utilisation pour envoyer plusieurs e-mails occupera des ressources de serveur plus élevées. Swift envoie des e-mails plus rapidement et plus efficacement en se connectant directement à un serveur SMTP ou MTA.

Configurer l'environnement
  1. Configurez d'abord notre composant mailer dans notre 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;,
                ],
            ],
Copier après la connexion
Copier après la connexion
  1. Appelez ce composant dans le contrôleur ou le modèle.

$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类型的值
Copier après la connexion
Copier après la connexion

Ici, nous devons parler de plusieurs méthodes.
1. La méthode compose() dans le composant mailer

compose($view = null, array $params = [])
La valeur $view est le modèle d'e-mail qui doit être chargé, qui est dans common/Mailer par défaut (déterminé par l'attribut viewPath dans le mail de configuration) )

$params peut contenir divers paramètres que nous devons charger dans le modèle, tels que notre « jeton », « adminuser » et d'autres valeurs de paramètres ci-dessus. Il convient de mentionner que lorsque les clés de la valeur sont html et text signifie charger respectivement notre modèle de bloc html et notre modèle de bloc de texte.

  1. Créons notre modèle d'e-mail en vue

Nous ouvrons notre common/views/mail/layout et nous pouvons voir le composant mailer Le modèle de base a été écrit

pour nous, il nous suffit donc d'écrire un simple code HTML puis d'appeler la mise en page

Nous écrivons ce que nous voulons dans le dossier de messagerie au format HTML pour l'envoi de fichiers

//例如:<P>尊敬的管理员<?=$adminuser;?></P><p> 你好</p><p>你的重置密码连接为:</p><a href="http://<?=$token?>">http://<?=$token?></a><p>请在5分钟之内重置密码,否则密码想会失效</p>  //token 为我们在compose中传入的值
Copier après la connexion
Copier après la connexion

Il s'agit de la fonction d'envoi d'e-mails dans yii2

Recommandations associées :

Yii2 Opération de mot de passe oublié basée sur la vérification des e-mails

Vérification de l'autorisation de yii2 resetful

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal