一、邮箱验证
1、利用php发送邮件首先要先开通相关的邮箱服务,以163为例
2、利用composer安装phpmailer组件
3、利用phpmailer组件发送邮件
<?php header('content-type: text/html; charset=utf8'); ini_set('display_errors', true); require './vendor/autoload.php'; use PHPMailer\PHPMailer\PHPMailer; //实例化对象 $mail = new PHPMailer(); //3.设置属性,告诉我们的服务器,谁跟谁发送邮件 $mail -> IsSMTP(); //告诉服务器使用smtp协议发送 $mail -> SMTPAuth = true; //开启SMTP授权 $mail -> Host = 'smtp.163.com'; //告诉我们的服务器使用163的smtp服务器发送 $mail -> From = '******@163.com'; //发送者的邮件地址 $mail -> FromName = 'bill'; //发送邮件的用户昵称 $mail -> Username = '******@163.com'; //登录到163邮箱的用户名、账号 $mail -> Password = '******'; //第三方登录的授权码,在邮箱里面设置 //$mail->SMTPDebug = 2; //如果有报错的情况,可以打开这个选项排错 //编辑发送的邮件内容 $mail -> IsHTML(true); //发送的内容使用html编写 $mail -> CharSet = 'utf-8'; //设置发送内容的编码 $mail -> Subject = '这个是标题'; //设置邮件的主题、标题 $mail -> MsgHTML('这里是内容,可以是Html');//发送的邮件内容主体 //告诉服务器接收人的邮件地址 $mail -> AddAddress('457491559@qq.com'); //调用send方法,执行发送 $result = $mail -> Send(); if($result){ echo 'ok'; }else{ echo $mail -> ErrorInfo; } ?>
二、短信验证
1、选择短信发送平台(这里选用的是联容云平台做测试)
注册容联云平台账号,登陆后进行开发文档里,下载测试Demo(这里使用测试账号)
以方文件夹里存放的是php发送短信和核心代码
2、因为发送短信是需要依赖php的curl依赖,所以需要打开相关的扩展
3、在下载的demo中有个文件SendTemplateSMS.php,可以改造该类进行发送短信使用
<?php namespace sendMsg; require_once('./utils/phpMsg/phpMsg.php'); //这个是自命名的CCPRestSDK.php use phpMsg\phpMsg\REST; class SendMsg { private static $instance; private $accountSid = '*******************'; private $accountToken = '**************'; private $appId = '*****************'; private $serverIP = 'app.cloopen.com'; //测试时的地址 private $serverPort = '8883'; //请求端口 private $softVersion = '2013-12-26'; //REST版本号 private $restHandle; //请求句柄 private function __construct(){ $this->restHandle = new REST($this->serverIP, $this->serverPort, $this->softVersion); $this->restHandle->setAccount($this->accountSid,$this->accountToken); $this->restHandle->setAppId($this->appId); } /** * @param $to * @param $data */ public function send($to, $data) { //$to: 短信接收手机号码集合,用英文逗号分开,如 '13810001000,13810011001',最多一次发送200个。 //$datas:内容数据,需定义成数组方式,如模板中有两个参数,定义方式为array('3456','123')。 //$tempId: 模板Id,如使用测试模板,模板id为1,如使用自己创建的模板,则使用自己创建的短信模板id即可。 $tempId = 1; $result = $this->restHandle->sendTemplateSMS($to, $data, $tempId); if($result->statusCode!=0) { return ['res' => 1, 'code' => $result->statusCode, 'msg' => $result->statusMsg]; }else{ $smsmessage = $result->TemplateSMS; return ['res' => 0, 'dateCreated'=> $smsmessage->dateCreated, 'smsMessageSid' => $smsmessage->smsMessageSid]; } } public static function get(): SendMsg{ if(!self::$instance) { self::$instance = new SendMsg(); } return self::$instance; } } ?>
//调用
<?php use sendMsg\SendMsg; header('content-type: text/html; charset=utf8'); ini_set('display_errors', true); require_once('./sendMsg.php'); $msg = SendMsg::get()->send('157********', [10,5]); var_dump($msg); ?>