Ems.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use app\common\library\Ems as Emslib;
  5. use app\common\model\User;
  6. use think\Hook;
  7. /**
  8. * 邮箱验证码接口
  9. */
  10. class Ems extends Api
  11. {
  12. protected $noNeedLogin = '*';
  13. protected $noNeedRight = '*';
  14. public function _initialize()
  15. {
  16. parent::_initialize();
  17. }
  18. /**
  19. * 发送验证码
  20. *
  21. * @ApiMethod (POST)
  22. * @param string $email 邮箱
  23. * @param string $event 事件名称
  24. */
  25. public function send()
  26. {
  27. $email = input("email");
  28. $event = input("event",'default');
  29. $last = Emslib::get($email, $event);
  30. if ($last && time() - $last['createtime'] < 60) {
  31. $this->error(__('发送频繁'));
  32. }
  33. if ($event) {
  34. $userinfo = User::getByEmail($email);
  35. if ($event == 'register' && $userinfo) {
  36. //已被注册
  37. $this->error(__('已被注册'));
  38. } elseif (in_array($event, ['changeemail']) && $userinfo) {
  39. //被占用
  40. $this->error(__('已被占用'));
  41. } elseif (in_array($event, ['changepwd', 'resetpwd']) && !$userinfo) {
  42. //未注册
  43. $this->error(__('未注册'));
  44. }
  45. }
  46. $ret = Emslib::send($email, null, $event);
  47. if ($ret) {
  48. $this->success(__('发送成功'));
  49. } else {
  50. $this->error(__('发送失败'));
  51. }
  52. }
  53. /**
  54. * 检测验证码
  55. *
  56. * @ApiMethod (POST)
  57. * @param string $email 邮箱
  58. * @param string $event 事件名称
  59. * @param string $captcha 验证码
  60. */
  61. /*public function check()
  62. {
  63. $email = input("email");
  64. $event = input("event");
  65. $event = $event ? $event : 'register';
  66. $captcha = input("captcha");
  67. if ($event) {
  68. $userinfo = User::getByEmail($email);
  69. if ($event == 'register' && $userinfo) {
  70. //已被注册
  71. $this->error(__('已被注册'));
  72. } elseif (in_array($event, ['changeemail']) && $userinfo) {
  73. //被占用
  74. $this->error(__('已被占用'));
  75. } elseif (in_array($event, ['changepwd', 'resetpwd']) && !$userinfo) {
  76. //未注册
  77. $this->error(__('未注册'));
  78. }
  79. }
  80. $ret = Emslib::check($email, $captcha, $event);
  81. if ($ret) {
  82. $this->success(__('成功'));
  83. } else {
  84. $this->error(__('验证码不正确'));
  85. }
  86. }*/
  87. }