PHPMailerService.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace service;
  12. use PHPMailer\PHPMailer\PHPMailer;
  13. class PHPMailerService extends PHPMailer
  14. {
  15. const HOST = 'smtp.qq.com';
  16. const USER = '136327134@qq.com';
  17. const PSD = 'fkjeyxwuvujtbibh';
  18. protected static $debug = 0;
  19. protected static $mail = null;
  20. protected static function setConfig()
  21. {
  22. self::$mail = new self();
  23. //是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
  24. self::$mail->SMTPDebug = self::$debug;
  25. //使用smtp鉴权方式发送邮件
  26. self::$mail->isSMTP();
  27. //smtp需要鉴权 这个必须是true
  28. self::$mail->SMTPAuth = true;
  29. //链接qq域名邮箱的服务器地址
  30. self::$mail->Host = self::HOST;
  31. //设置使用ssl加密方式登录鉴权
  32. self::$mail->SMTPSecure = 'ssl';
  33. //设置ssl连接smtp服务器的远程服务器端口号,以前的默认是25,但是现在新的好像已经不可用了 可选465或587
  34. self::$mail->Port = 465;
  35. //设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码
  36. self::$mail->CharSet = 'UTF-8';
  37. //smtp登录的账号 这里填入字符串格式的qq号即可
  38. self::$mail->Username = self::USER;
  39. //smtp登录的密码 使用生成的授权码(就刚才叫你保存的最新的授权码)
  40. self::$mail->Password = self::PSD;
  41. //邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false
  42. self::$mail->isHTML(true);
  43. }
  44. /*
  45. * $addresser 发件人
  46. * $to 发送至邮箱
  47. * $title 标题
  48. * $content 内容
  49. * */
  50. public static function sendMail($title, $content, $to, $name = '', $addresser = self::USER)
  51. {
  52. self::setConfig();
  53. //设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”
  54. self::$mail->From = $addresser;
  55. //设置发件人
  56. if (is_array($to)) {
  57. foreach ($to as $item) {
  58. if (isset($item['to_mail']) && isset($item['name']) && $item['to_mail']) self::$mail->addAddress($item['to_mail'], $item['name']);
  59. }
  60. } else {
  61. self::$mail->addAddress($to, $name);
  62. }
  63. self::$mail->Subject = $title;
  64. self::$mail->Body = $content;
  65. return self::$mail->send();
  66. }
  67. }