Email.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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::location('http://qiquan.churenyiliao.com/pages/app/checkemail/checkemail/?email='.$temp[1].'&status=2');
  24. Dever::alert('您的验证信息已失效,请重新发送验证邮件');
  25. }
  26. $where['where_id'] = $temp[0];
  27. //$where['email'] = $temp[1];
  28. $where['is_email'] = 1;
  29. Dever::db('option/account')->update($where);
  30. Dever::location('http://qiquan.churenyiliao.com/pages/app/checkemail/checkemail/?email='.$temp[1].'&status=1');
  31. echo '您的邮件:'.$temp[1].',已经验证成功。请登录期权管理系统查询。';die;
  32. }
  33. public function renzheng()
  34. {
  35. $email = Dever::input('email');
  36. $username = Dever::input('username');
  37. $code = Dever::input('code');
  38. $aid = Dever::input('aid');
  39. $email = base64_decode($email);
  40. $config = Dever::config('base', 'project')->email['option'];
  41. $title = $config['title'];
  42. $content = $config['content'];
  43. $signature = Dever::encode($aid . '|||' . $email . '|||' . $code);
  44. $link = Dever::url($config['link'] . '?signature=' . $signature);
  45. $date = date('Y-m-d H:i:s');
  46. $content = str_replace('{link}', $link, $content);
  47. $content = str_replace('{username}', $username, $content);
  48. $content = str_replace('{date}', $date, $content);
  49. $this->send($email, $username, $title, $content);
  50. }
  51. public function send($email, $username, $title, $content)
  52. {
  53. $config = Dever::config('base', 'project')->email;
  54. Dever::apply('src/PHPMailer', 'email');
  55. Dever::apply('src/Exception', 'email');
  56. Dever::apply('src/SMTP', 'email');
  57. $mail = new \PHPMailer\PHPMailer\PHPMailer();
  58. $mail->isSMTP();
  59. //$mail->SMTPDebug = 2;
  60. $mail->CharSet = 'UTF-8';
  61. $mail->Host = $config['smtp'];
  62. $mail->Port = 465;
  63. $mail->SMTPSecure = 'ssl';
  64. $mail->SMTPAuth = true;
  65. $mail->Username = $config['username'];
  66. $mail->Password = $config['password'];
  67. $mail->setFrom($config['from'][0], $config['from'][1]);
  68. $mail->addAddress($email, $username);
  69. $mail->Subject = "=?utf-8?B?" . base64_encode($title) . "?=";
  70. $mail->Body = $content;
  71. $mail->isHTML(true);
  72. //$mail->addAttachment($file);
  73. if (!$mail->send()) {
  74. Dever::alert("Mailer Error: " . $mail->ErrorInfo);
  75. } else {
  76. return 'ok';
  77. }
  78. }
  79. }