邮件 - 基本使用 ¶
作者:KK
发表日期:2016.9.7
Yii2的邮件底层是集成了swiftmailer来实现的,Yii2框架自身并不负责具体的发邮件处理
对于Yii2的开发者来说,统一用mailer组件
来处理,并且只要咱们能实现邮件接口的话,自定义一个邮件底层的实现yii\mail\BaseMailer
类也可以
好了进入主题
配置 ¶
配置mailer组件
'components' => [
//省略其它组件。。。
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'SMTP服务器的主机',
'username' => 'SMTP服务器账号',
'password' => 'SMTP服务器密码',
'port' => '25', //SMTP服务器端口
],
'messageConfig' => [
'charset' => 'UTF-8', //邮件的默认编码
'from' => [
'xxx@yy.com' => '小明', //邮件上显示的 来自 和 发信人名称
],
],
],
]
调用代码 ¶
$email = Yii::$app->mailer->compose(); //创建一封新邮件
$email->setTo('接收者的邮箱地址'); //设置发送目标
$email->setSubject('学习Yii发邮件用的'); //设置邮件标题
$email->setHtmlBody('<div style="color:red">fffffff</div>'); //设置邮件主体内容
Yii::$app->mailer->send($email); //发送这封邮件
批量发送 ¶
$emailList = [];
foreach($userList as $user){
$email = Yii::$app->mailer->compose(); //创建一封新邮件
$email->setTo($user->email); //设置发送目标
$email->setSubject('推广邮件'); //设置邮件标题
$email->setHtmlBody('<div style="color:red">本商城明天有上万件商品参与秒杀哦!</div>'); //设置邮件主体内容
$emailList[] = $email;
}
Yii::$app->mailer->sendMultiple($emailList); //不要在for循环里一个个去send,用这个方法批量发送会比较好