1、composer导入phpmailer/phpmailer包

composer require phpmailer/phpmailer

2、使用PHPMailer进行邮箱发送

<?phpnamespace app\api\controller;//用use引入第三方类
use PHPMailer\PHPMailer\PHPMailer;class Email
{/*** 邮件发送(我是用邮箱发送的是验证码)*/public function sendCode(){$toeamil = $this->request->get('email');if (empty($toeamil)){return $this->buildFailed(ReturnCode::EMPTY_PARAMS,'请输入邮箱');}if (!filter_var($toeamil, FILTER_VALIDATE_EMAIL)){return $this->buildFailed(ReturnCode::PARAM_INVALID,'邮箱格式错误');}$code = getCode();$desc_title = "邮箱验证码";$desc_content = "您的验证码为:".$code.",请勿向他人泄露。";// 根据你的内用传入得到相关的参数,在调用我们方才的函数时,传递过去即可。$res = $this->sendEmail($desc_title,$desc_content, $toeamil);// $res就是sendEmail()返回的值。我们根据返回的相应参数进行处理即可。if ($res['code']) {//验证码存入缓存中Cache::set($toeamil,$code,180);return $this->buildSuccess();}else{return $this->buildFailed(ReturnCode::EXCEPTION,'邮箱发送失败');}}/*** 126发送邮箱* @param $desc_content* @param $toemail* @return int|string* @throws \PHPMailer\PHPMailer\Exception*/public function sendEmail($desc_title,$desc_content, $toemail){$mail = new PHPMailer();$mail->isSMTP();// 使用SMTP服务$mail->CharSet = "utf8";// 编码格式为utf8,不设置编码的话,中文会出现乱码$mail->Host = "smtp.126.com";// 发送方的SMTP服务器地址$mail->SMTPAuth = true;// 是否使用身份验证$mail->Username = "xxx@126.com";// 发送方的126邮箱用户名,就是你申请126的SMTP服务使用的126邮箱$mail->Password = "xxxxx";// 发送方的邮箱密码,注意用126邮箱这里填写的是“客户端授权密码”而不是邮箱的登录密码!$mail->Port = 25;// 126邮箱的ssl协议方式端口号是25$mail->setFrom("xxx@126.com","CC");// 设置发件人信息,如邮件格式说明中的发件人,这里会显示为CC(xxx@126.com),CC是当做名字显示$mail->addAddress($toemail,'AA');// 设置收件人信息,如邮件格式说明中的收件人,这里会显示为AA(yyyy@126.com)$mail->Subject =  $desc_title;// 邮件标题$mail->Body = $desc_content;// 邮件正文if(!$mail->send()){// 发送邮件return ['code'=>0,'msg'=>$mail->ErrorInfo];// echo "Message could not be sent.";// echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息}else{return ['code'=>1,'msg'=>'发送成功'];}}/*** 163发送邮箱* @param $desc_content* @param $toemail* @return int|string* @throws \PHPMailer\PHPMailer\Exception*/public function sendEmailFor163($desc_title,$desc_content, $toemail){$mail = new PHPMailer();$mail->isSMTP();// 使用SMTP服务$mail->CharSet = "utf8";// 编码格式为utf8,不设置编码的话,中文会出现乱码$mail->Host = "smtp.163.com";// 发送方的SMTP服务器地址$mail->SMTPAuth = true;// 是否使用身份验证$mail->Username = "xxxx@163.com";// 发送方的163邮箱用户名,就是你申请163的SMTP服务使用的163邮箱$mail->Password = "xxxx";// 发送方的邮箱密码,注意用163邮箱这里填写的是“客户端授权密码”而不是邮箱的登录密码!$mail->SMTPSecure = "ssl";// 使用ssl协议方式$mail->Port = 465;// 163邮箱的ssl协议方式端口号是465/994$mail->setFrom("xxx@163.com","CC");// 设置发件人信息,如邮件格式说明中的发件人,这里会显示为CC(xxxx@163.com),CC是当做名字显示$mail->addAddress($toemail,'AA');// 设置收件人信息,如邮件格式说明中的收件人,这里会显示为AA(yyyy@163.com)
//        $mail->addReplyTo($toemail,"Reply");// 设置回复人信息,指的是收件人收到邮件后,如果要回复,回复邮件将发送到的邮箱地址//$mail->addCC("xxx@163.com");// 设置邮件抄送人,可以只写地址,上述的设置也可以只写地址(这个人也能收到邮件)//$mail->addBCC("xxx@163.com");// 设置秘密抄送人(这个人也能收到邮件)//$mail->addAttachment("bug0.jpg");// 添加附件$mail->Subject = $desc_title;// 邮件标题$mail->Body = $desc_content;// 邮件正文//$mail->AltBody = "This is the plain text纯文本";// 这个是设置纯文本方式显示的正文内容,如果不支持Html方式,就会用到这个,基本无用if(!$mail->send()){// 发送邮件return ['code'=>0,'msg'=>$mail->ErrorInfo];// echo "Message could not be sent.";// echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息}else{return ['code'=>1,'msg'=>'发送成功'];}}
}
代码中的getCode()方法实现如下
function getCode()
{$str = mt_rand(100000,999999);$randStr = str_shuffle($str);//打乱字符串$code = substr($randStr, 0, 4);//substr(string,start,length);返回字符串的一部分return $code;
}

thinkphp使用163/126邮箱发送相关推荐

  1. [php] thinkphp实现 163 qq 邮箱收发邮件(切实可用)

    在写这篇文章之前在网上查找过很多使用php或thinkphp发送邮件的,也看到别人的都测试成功了,但是我的老是报错,很纠结...找了很多资料看,也用了很长时间去一步一步摸索,终于先在163 网易邮箱上 ...

  2. php模拟邮箱登录2017,php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍_PHP教程...

    最近一直在忙,赶在这个假期结束的时候,发表一下此文,为了是让这些源码开源出来 当然这些方法可能不可取,但大致应该是这种方向了吧,由于目前做的一个UCHOME港台的站点 咱们策划说要改一下好友邀请里面的 ...

  3. iPhone/iPad收发网易163/126邮箱邮件设置

    来源:iPhone中文网 网易邮箱的IMAP服务更核心的在于"极速"收取邮件.IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间.主题.发件人.大小等"摘要&q ...

  4. php怎么查看qq邮箱,thinkphp实现163、QQ邮箱收发邮件的方法

    用了很长时间去一步一步摸索,终于先在163 网易邮箱上测试成功了,下面就把这个过程分享给大家. 在进入正题这前先看下网易(163)邮箱的服务器地址和端口号: 一.前期准备 使用网易邮箱,当然要注册个账 ...

  5. 163/126/QQ邮箱服务器地址以及SSL端口

    1. 163\126邮箱 网易163免费邮箱相关服务器信息:(http://help.163.com/09/1223/14/5R7P3QI100753VB8.html) (http://m.mail. ...

  6. 如何用163.net邮箱写好一份专业得体的商务邮件?

    在当今社会,用微信,QQ沟通很方便,但是在工作中,很多时候,你和你客户交流是需要通过邮件的,而邮件是你塑造个人形象的唯一渠道.那么如何写好一份专业得体的商务邮件呢?小编给大家分享一下,助你在细节上脱颖 ...

  7. matlab 发送 126 邮件,python实现126邮箱发送邮件

    用Python发送126邮件,供大家参考,具体内容如下 今天想做个自动化邮件提醒的功能,最近刚好在学习python,都说python那么强大,想试一下python能否搞定,搜一下资料,果真可以,而且又 ...

  8. java企业邮箱发送_java使用网易163企业个性域名邮箱发送邮件教程

    本文作者具有著作权,转载前倾注明来源:留在青山的博客 在我的很久之前的一篇博文里,我使用简单的代码 实现了java发送126邮箱邮件的功能,但是今天我自己注册了一个个性化的域名,我想通过我自己的域名邮 ...

  9. 【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送

    第一步:下载phpmailer文件,主要用到的文件只有箭头指向的两个,thinkphp5中,把class.phpmailer.php改成了phpmailer.php 第二步: 将phpmailer文件 ...

  10. python 实现使用163邮箱发送有图片的邮件

    周末温习下python,正好最近在做监控,想着 给163邮箱发邮件,记录下来,方便备查. 邮件发送必须要知道邮件的 传输协议 SMTP SMTP (Simple Mail Transfer Proct ...

最新文章

  1. 量子位「MEET 2021智能未来大会」来啦!邀智能科技企业共探明日行业新格局
  2. Spring配置中context:annotation-config VS context:component-scan
  3. linux io读写次数 oid,Oidiomycosis in Porto Rico.
  4. 使用Azure Blob Storage实现一个静态文件服务器
  5. linux 进程 释放内存,Linux 释放内存方法和原理
  6. Python bytes 函数 - Python零基础入门教程
  7. java poi 自动行高,20191012——POI设置单元格自动行高(思路)
  8. linux mysql.sock文件_关于linux上mysql.sock文件的个人理解
  9. Nginx动静分离经典案例配置
  10. nginx的安装以及简单代理域名
  11. WinRAR 压缩文件的时候排除指定的目录文件夹
  12. 人脸验证(图片/视频) tensorflow、pytorch框架、dlib库(face_recognition)和opencv库————附带详细步骤和代码,可实际运行
  13. 7-2 高精度求累加和 分数 25作者 胡伟平单位 广西科技大学
  14. Qt的QVector类
  15. Arduino与7段显示器连接
  16. cocos2dx学习小结
  17. 使用 Jackson 操作 JSON 数据
  18. 计算机毕业论文java毕业设计论文题目ssm项目源码水果商城系统电商购物项目[包运行成功]
  19. Rstudio入门教程
  20. 【C语言】输出1900至2000年(包含1900年和2000年)间的所有闰年

热门文章

  1. 你以为你在利用碎片化时间,实际上你的时间被碎片化了
  2. Ffmpeg 微信amr转换Mp3
  3. python培训课程-python培训课程
  4. 计算机类qq网名,最帅的qq名字
  5. 三流大学和一流大学学生的简历有什么区别?
  6. 习题 6.13 编一程序,将两个字符串连接起来,不要用strcat函数。
  7. oracle dsi 培训,DSI学习笔记
  8. Shell变量(二)
  9. 经典之打印沙漏-数学分析-C/C++
  10. 项目邮件[置顶] 失业的程序员(十二):潜意识的智商