yii2 发送邮箱
1.在qq邮箱中 设置--账户--POP3/SMTP服务 把它开启,需要发送短信,会给你一个验证码,这个验证码就是密码
2.在main-local.php的components中添加一下代码
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
//'viewPath' => '@common/mail',
'transport' => [
'class' => 'Swift_SmtpTransport',
//'host' => 'smtp.163.com', //每种邮箱的host配置不一样
'host' => 'smtp.qq.com', //每种邮箱的host配置不一样
'username' => '*******@qq.com', //发件人的邮箱
'password' => '******', //这是发送短信生成的验证码
'port' => '465',
'encryption' => 'ssl',
],
'messageConfig'=>[
'charset'=>'UTF-8',
'from'=>['*********@qq.com'=>'admin']
],
],
3.控制中新建一个方法 代码
//邮箱
public function actionEmail(){
$mail= Yii::$app->mailer->compose();
$mail->setTo('1*******4@qq.com'); // //11******71
$mail->setSubject("邮件测试");
//$lock = new Security();
//$str = $lock->encryptByKey('abcd','123');
//echo $str;
//$str = base64_encode($str);//发送base64 加密的数据
$mail->setTextBody('xixi'.'秘钥是123'); //发布纯文字文本
//$mail->setHtmlBody("<br>问我我我我我"); //发布可以带html标签的文本
if($mail->send())
echo "success";
else
echo "failse";
die(); //邮箱发送ok
}
4,在邮箱中会收到加密后的字符串
在新的方法中添加
$str = 接收的字符串;
$str = base64_decode($str);
//echo $str;
$str = $lock->decryptByKey($str,'123');//123相当于秘钥
echo $str;