Email.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. $username = Dever::input('username');
  33. $code = Dever::input('code');
  34. $mid = Dever::input('mid');
  35. $email = base64_decode($email);
  36. $config = Dever::config('base', 'project')->email['renzheng'];
  37. $title = $config['title'];
  38. $content = $config['content'];
  39. $signature = Dever::encode($mid . '|||' . $email . '|||' . $code);
  40. $link = Dever::url($config['link'] . '?signature=' . $signature);
  41. $content = str_replace('{link}', $link, $content);
  42. $this->send($email, $username, $title, $content);
  43. }
  44. public function send($email, $username, $title, $content)
  45. {
  46. $config = Dever::config('base', 'project')->email;
  47. Dever::apply('src/PHPMailer', 'email');
  48. Dever::apply('src/Exception', 'email');
  49. Dever::apply('src/SMTP', 'email');
  50. $mail = new \PHPMailer\PHPMailer\PHPMailer();
  51. $mail->isSMTP();
  52. //$mail->SMTPDebug = 2;
  53. $mail->CharSet = 'UTF-8';
  54. $mail->Host = $config['smtp'];
  55. $mail->Port = 465;
  56. $mail->SMTPSecure = 'ssl';
  57. $mail->SMTPAuth = true;
  58. $mail->Username = $config['username'];
  59. $mail->Password = $config['password'];
  60. $mail->setFrom($config['from'][0], $config['from'][1]);
  61. $mail->addAddress($email, $username);
  62. $mail->Subject = "=?utf-8?B?" . base64_encode($title) . "?=";
  63. $mail->Body = $content;
  64. //$mail->addAttachment($file);
  65. if (!$mail->send()) {
  66. Dever::alert("Mailer Error: " . $mail->ErrorInfo);
  67. } else {
  68. return 'ok';
  69. }
  70. }
  71. }