Yii2之发送电子邮件
2018-06-22 05:36:42来源:未知 阅读 ()
官方文档:http://www.yiiframework.com/doc-2.0/guide-tutorial-mailing.html
使用Yii2框架的时候,有时候需要发送电子邮件,Yiii2提供了swiftMailer扩展来实现;
1、swiftMailer
Swift是一个完全采用面向对象编码用于发送e-mail的PHP函数库。Swift不依赖于PHP的mail()函数,因为用它发送多封邮件时会占用较高的服务器资源。Swift通过直接连到SMTP服务器或MTA能够更快,更高效地发送邮件。
2、安装:
https://github.com/yiisoft/yii2-swiftmailer
这里有具体的安装方法以及使用方法:
a、配置:
return [ //.... 'components' => [ 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'useFileTransport' => false, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.163.com', 'username' => '***@163.com', 'password' => '******', //这里需要注意,一些邮箱如果在第三方邮箱登录以下等服务POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV,会要求设置登录授权码,登录的时候,密码是输的这个授权码,这里填写的password也相应的是这个授权码 'port' => '25', 'encryption' => 'tls', ], 'messageConfig'=>[ 'charset'=>'UTF-8', 'from'=>['***@163.com'=>'**客服'] ], ], ], ];
3、使用:
$mail= Yii::$app->mailer->compose(); $mail->setTo('***@163.com'); //要发送的邮箱 $mail->setSubject("邮件主题"); //邮件主题 $mail->setTextBody('纯文本内容'); //发布纯文字文本 $mail->setHtmlBody("消息内容"); //发送的消息内容 $res = $mail->send();
注意:批量发送的时候,只需要在setTo防范重传入邮箱数组即可,setTo([‘mail1@mail.com’,‘mail1@mail.com’])
4、自定义邮件模板:
我们在配置的时候会做一些配置,其中有一项为
'viewPath' => '@common/mail',
因此我们可以在该目录下创建新的模版文件template.php,内容自己随便写
然后在定义的时候:
Yii::$app->mailer->compose('template',['params'=>'参数1'])
即参数传入模板文件的名称。当然也支持传入参数,即为第二个参数
5、自定义layout
为邮件定制layout,,假如layout放在common\layouts\mail下,文件为layout.php:
Yii::$app->mailer->compose('template', [ 'html' => 'layout', //key固定,value是模版文件名 'params' => '参数1' ]) ->setTo('**@163.com') ->setSubject(*****主题') ->send();
6、发送带附件的邮件:发送邮件并以附件的形式带上一张图片和一个word文档
$message = Yii::$app->mailer->compose(); $message->attach('图片可访问地址'); $message->attachContent('Attachment content', ['fileName' => 'test.word', 'contentType' => 'text/plain']); $message->setTo('***@163.com'); $message->setSubject('***主题'); $message->send();
注意:想把图片放在邮件内容,而不是附件发送,可以通过模板文件并传入参数的方法实现,但是部分邮箱还是会将图片摘出来,以附件的形式发送
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Laravel 中 “规范” 的开发短信验证码发送功能 2020-02-08
- 详解Yii2框架实现登录、退出及自动登录功能的方法 2019-12-15
- php调用云片网接口发送短信的实现方法 2019-12-14
- php邮件发送的两种方式 2019-11-30
- 详析php发送post请求的方法 2019-10-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash