Email.php 2.9 KB

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