Yii2.0发送邮件是很容易的,只需要配置个文件,然后开启php_openssl扩展即可。首先我们先配置YII2.0邮件类,在YII2.0框架的配置文件的components数组里配置如下:
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
/*这里根据你邮箱地址去配置
我这里用的是网易邮箱*/
'host' => 'smtp.163.com',
//发送邮箱的账户
'username' => '你的邮箱账户',
//发送邮箱的密码
'password' => '你的邮箱密码',
//邮箱的端口,网易邮箱是465,腾讯是25,根据需要配置
'port' => '465',
//加密,默认写ssl就可以
'encryption' => 'ssl',
],
],
这样就把YII2.0邮箱配置成功,接下来就来看看能不能发送邮件了,我们写个控制器来发送。代码如下:
public function actionSendmail()
{
$mail= Yii::$app->mailer->compose();
$mail->setFrom("发送邮箱的账户");
$mail->setTo('接收邮箱的账户');
$mail->setSubject("邮件测试");
$mail->setHtmlBody("<h1>可以发送带html标签文本,如果想发送纯文本,可以使用setTextBody</h1>");
if($mail->send())
{
echo "发送成功!";
}
else
{
echo "发送失败!";
}
}
最后访问这个控制器,如果显示发送成功,可以去看下接收邮箱是否有一封未读邮件。如果发送失败,请仔细查阅是否字符写错还有是否开启php_openssl扩展。