Yii2.0中Mailer收发邮件详解-创新互联

Yii2.0封装的类足够强大,Mailer的使用方法做一个总结:
1、先在main-local.php中做好配置:

创新互联是一家集做网站、成都网站建设、网站页面设计、网站优化SEO优化为一体的专业网站设计公司,已为成都等多地近百家企业提供网站建设服务。追求良好的浏览体验,以探求精品塑造与理念升华,设计最适合用户的网站页面。 合作只是第一步,服务才是根本,我们始终坚持讲诚信,负责任的原则,为您进行细心、贴心、认真的服务,与众多客户在蓬勃发展的市场环境中,互促共生。

return [
//....
'components' => [
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
],
],
];

详细如下:

return [
//....
'components' => [
'viewPath' => '@common/mail',
'useFileTransport' =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
'transport' => [
'class' =>'Swift_SmtpTransport', //使用的类
'host' => 'smtp.sina.com', //邮箱服务一地址这里用的sina邮件服务器
'username' => 'wwwww@sina.com',//邮箱地址,发送的邮箱
'password' => '***', //自己填写邮箱密码
'port' => '465', //服务器端口
'encryption' => 'ssl', //加密方式
],
'messageConfig'=>[
'charset'=>'UTF-8', //编码
'from'=>['wwwww@sina.com'=>'管理员'] //邮件里面显示的邮件地址和名称
],
],
];

2、在应用中的对应的方法中使用:

Yii::$app->mailer->compose()->setFrom('from@domain.com')->setTo('to@domain.com')->setSubject('Message subject')->setTextBody('Plain text content')->setHtmlBody('HTML content')->send();

3、关于在上面的例子中所述的 compose() 方法创建了电子邮件消息,这是填充和发送的一个实例,发送内容在setTextBody中传输。 如果需要的话在这个过程中你可以用上更复杂的逻辑:

$message = Yii::$app->mailer->compose();
if (Yii::$app->user->isGuest) {$message->setFrom('from@domain.com')
} else { $message->setFrom(Yii::$app->user->identity->email)}
$message->setTo(Yii::$app->params['adminEmail'])
->setSubject('Message subject')
->setTextBody('Plain text content')
->send();

4、邮件发出去的内容,除了通过setTextBody中传输。在Yii 允许通过特殊的视图文件来撰写实际的邮件内容。默认情况下, 这些文件应该位于 “@app/mail” 路径的文件中,代码如下:
passwordResetToken-html.php

use yii\helpers\Html;

/ @var $this yii\web\View/
/ @var $user common\models\User/

$resetLink = Yii::$app->urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $user->password_reset_token]);
?>


Hello username) ?>,

Follow the link below to reset your password:


调用的时候代码如下(html指向上述目录中的对应html视图文件):

Yii::$app
->mailer
->compose(
['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'],
['user' => $user]
)
->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . '管理员'])
->setTo($this->email)
->setSubject('密码重置' . Yii::$app->name)
->send();

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:Yii2.0中Mailer收发邮件详解-创新互联
网址分享:http://scjbc.cn/article/goipg.html

其他资讯