当前位置: 首页 > 后端技术 > PHP

通过CakePHP内置模块(Gmail)发送邮件

时间:2023-03-29 14:12:19 PHP

效果发送邮件的功能可以通过提前配置模块来实现。(此代码不能根据用户输入的信息更改发送邮箱)前提条件读者有CakePHP版本基础知识CakePHP3.6.1PHP7.4.10准备在\config\app.php添加如下配置(记得替换邮箱地址)'EmailTransport'=>['default'=>['className'=>'Smtp','host'=>'smtp.gmail.com','port'=>587,user>0='timeout''=>'name@gmail.com','password'=>'12345678','tls'=>true,'url'=>env('EMAIL_TRANSPORT_DEFAULT_URL',null),>mail=],'['default'=>['transport'=>'default','from'=>'name@gamail.com',//'charset'=>'utf-8',//'headerCharset'=>'utf-8',],],到任意一个Controller.php里面写发送邮件的函数。*这里引用stackoverflow//在最上面加载模块useCake\Mailer\Email;//在任意类下写发送邮件的函数publicfunctionsend(){$email=newEmail('default');尝试{$email->setFrom(['name@gmail.com'=>'MySite'])->setTo('recipientemail@126.com')->setSubject('subject')->send('本文');回声“成功”;}catch(\Cake\Network\Exception\SocketException$exception){$lastResponse=$email->transport()->getLastResponse();var_dump($lastResponse);}}在\config\routes.php写路由$routes->connect('/send',['controller'=>'ControllerName','action'=>'send']);访问,测试错误,这是因为Gmail的安全防护等级太高。登录google账户管理中心->安全,关闭两步验证,开启访问权限,刷新页面,可以发现我们已经成功通过gmail发送邮件了。为了账号安全,测试成功后记得提高安全防护等级。