Mailer组件是yii框架自带的用于收发邮件的组件,无需安装,只需做一些配置即可使用,非常便捷。本文就mailer组件从配置到使用进行简单讲解。
首先在config/main.php配置如下:
return [ ‘components‘ => [ ‘mailer‘ => [ ‘class‘ => ‘yii\swiftmailer\Mailer‘, ‘viewPath‘ => ‘@common/mail‘, ‘useFileTransport‘ => false, ‘transport‘ => [ ‘class‘ => ‘Swift_SmtpTransport‘, ‘host‘ => ‘smtp.qq.com‘,//服务器根据不同邮箱类型而定,这里以qq邮箱为例 ‘username‘ => ‘[email protected]‘,//发送者邮箱地址 ‘password‘ => ‘vwwujuntianwefwefa‘,//SMTP密码 ‘port‘ => ‘25‘, ‘encryption‘ => ‘tls‘ ] ] ] ];
这里要选择一个邮箱作为发送方,其中username设置发送方邮箱地址,可以在config/params.php文件中配置一个supportEmail参数指定为这个邮箱地址,
下面直接使用Yii::$app->params[‘supportEmail‘]来表示这个邮箱地址。password参数设置的是SMTP密码,可以在邮箱界面上查看,如果是qq邮箱的话,
依次点击“设置”-》“账户”,在“开启服务”中开启“IMAP/SMTP服务”就会弹出窗口告诉你SMTP密码,直接复制粘贴到配置文件中即可。
配置好之后就可以使用了,使用方法如下:
$mailer = Yii::$app->mailer->compose(); $mailer->setFrom(Yii::$app->params[‘supportEmail‘]);//发送者 $mailer->setTo(‘[email protected]‘);//接收者 $mailer->setSubject(‘收到了吗‘);//邮件标题 $mailer->setHtmlBody(‘hello,wujuntian先生,请问您收到邮件了吗??‘);//邮件正文内容 $status = $mailer->send();//发送,成功则返回1
以上方法使用setHtmlBody()方法设置邮件正文内容,若邮件内容比较多,你也可以将邮件内容单独写成视图文件,然后在compose方法中指定作为
邮件内容的视图,使用方法如下:
Yii::$app->mailer->compose( [‘html‘ => ‘passwordResetToken-html‘, ‘text‘ => ‘passwordResetToken-text‘],//指定视图 [‘****‘ => ****]//这里可以传一些视图需要的参数 ) ->setFrom([Yii::$app->params[‘supportEmail‘] => ‘个人管理系统‘]) ->setTo($this->email) ->setSubject(‘你好吗?’) ->send();
注意,在compose()方法中指定的视图文件‘passwordResetToken-html’对应的是’config/mail/passwordResetToken-html.php’这个文件。
时间: 2024-10-25 22:09:03