Email.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace Agent\Lib;
  3. use Dever;
  4. class Email
  5. {
  6. # 修改邮箱
  7. public function act_api()
  8. {
  9. $signature = Dever::input('signature');
  10. if (!$signature) {
  11. Dever::alert('您的验证信息已失效,请重新发送验证邮件');
  12. }
  13. $signature = Dever::decode($signature);
  14. $temp = explode('|||', $signature);
  15. $code = $temp[2];
  16. $state = Dever::load('passport/reg')->code($code);
  17. if (!$state) {
  18. Dever::alert('您的验证信息已失效,请重新发送验证邮件');
  19. }
  20. $check = Dever::db('agent/member')->find(array('email' => $temp[1]));
  21. if ($check) {
  22. Dever::alert('该邮箱已被认证');
  23. }
  24. $where['where_id'] = $temp[0];
  25. $where['email'] = $temp[1];
  26. Dever::db('agent/member')->update($where);
  27. return '邮箱认证成功';
  28. }
  29. public function renzheng()
  30. {
  31. $email = Dever::input('email');
  32. $code = Dever::input('code');
  33. $mid = Dever::input('mid');
  34. $email = base64_decode($email);
  35. $config = Dever::config('base', 'project')->email['renzheng'];
  36. $title = $config['title'];
  37. $content = $config['content'];
  38. $signature = Dever::encode($mid . '|||' . $email . '|||' . $code);
  39. $link = Dever::url($config['link'] . '?signature=' . $signature);
  40. $content = str_replace('{link}', $link, $content);
  41. $this->send($email, $title, $content);
  42. }
  43. public function send($email, $title, $content)
  44. {
  45. $config = Dever::config('base', 'project')->email;
  46. Dever::apply('src/PHPMailer', 'email');
  47. Dever::apply('src/Exception', 'email');
  48. Dever::apply('src/SMTP', 'email');
  49. $mail = new \PHPMailer\PHPMailer\PHPMailer();
  50. $mail->isSMTP();
  51. //$mail->SMTPDebug = 2;
  52. $mail->CharSet = 'UTF-8';
  53. $mail->Host = $config['smtp'];
  54. $mail->Port = 465;
  55. $mail->SMTPSecure = 'ssl';
  56. $mail->SMTPAuth = true;
  57. $mail->Username = $config['username'];
  58. $mail->Password = $config['password'];
  59. $mail->setFrom($config['from'][0], $config['from'][1]);
  60. $mail->addAddress($user['email'], $user['username']);
  61. $mail->Subject = "=?utf-8?B?" . base64_encode($title) . "?=";
  62. $mail->Body = $content;
  63. //$mail->addAttachment($file);
  64. if (!$mail->send()) {
  65. Dever::alert("Mailer Error: " . $mail->ErrorInfo);
  66. } else {
  67. return 'ok';
  68. }
  69. }
  70. }