使用Yii2发送邮件

使用Yii2发送邮件

  1. config/web.php中开启邮箱配置
'mailer' => [
	'class' => 'yii\swiftmailer\Mailer',
    // send all mails to a file by default. You have to set
    // 'useFileTransport' to false and configure a transport
    // for the mailer to send real emails.
    'useFileTransport' => false,//true表示只生成文件不发
    'transport' => [
    	'class' => 'Swift_SmtpTransport',
        'host' => 'smtp.qq.com',  //每种邮箱的host配置不一样
        'username' => 'xxxxx@qq.com',//改成自己的邮箱
        'password' => 'xxxxxxxx',//改成自己的邮箱token
        'port' => '465',
        'encryption' => 'ssl',
	],
    'messageConfig'=>[
    	'charset'=>'UTF-8',
        'from'=>['xxxxx@qq.com'=>'YiiAdmin']//邮件显示名称
	],
],
  1. SiteController.php控制器文件添加
public function actionSendMail(){
	$mail= Yii::$app->mailer->compose('reset-password',['token'=>'xxxxxx']);
	// 渲染一个视图作为邮件模板 文件路径mail/reset-password.php,注意,不在view中
	$mail->setTo('xxxxx@hotmail.com');//要发送到的邮箱地址
	$mail->setSubject("邮件测试【重置密码】");//邮件标题
	if($mail->send())
		echo "success";
	else
		echo "failse";
	die();
}
  1. 视图文件
    视图文件的输出就是邮件的内容
<?php
$resetLink = Yii::$app->urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $token]);
?>
<div>
	<h5>密码重置服务</h5>
	<a href="<?=$resetLink?>">点击重置密码</a>
</div>
  1. 访问 http://127.0.0.1/base/web/index.php?r=site/send-mail
    出现 success则发送成功,若未收到确认邮箱已开启pop3服务

发送成功示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值