正在显示
3 个修改的文件
包含
32 行增加
和
6 行删除
| @@ -4,6 +4,7 @@ namespace Controller; | @@ -4,6 +4,7 @@ namespace Controller; | ||
| 4 | 4 | ||
| 5 | use Lib\Mail\Mail; | 5 | use Lib\Mail\Mail; | 
| 6 | use Lib\Mail\MailFun; | 6 | use Lib\Mail\MailFun; | 
| 7 | +use Lib\Verify; | ||
| 7 | use Model\emailSql; | 8 | use Model\emailSql; | 
| 8 | 9 | ||
| 9 | 10 | ||
| @@ -28,7 +29,7 @@ class Login { | @@ -28,7 +29,7 @@ class Login { | ||
| 28 | // $mail,$password,$imap,$smtp | 29 | // $mail,$password,$imap,$smtp | 
| 29 | $formData = app()->request(['email','password','imap','smtp']); | 30 | $formData = app()->request(['email','password','imap','smtp']); | 
| 30 | 31 | ||
| 31 | - if(empty($formData['email']) || !preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/",$formData['email'])){ | 32 | + if(empty($formData['email']) || !Verify::sEmail($formData['email'])){ | 
| 32 | app()->e('email_verify_error'); | 33 | app()->e('email_verify_error'); | 
| 33 | } | 34 | } | 
| 34 | 35 | 
| @@ -85,6 +85,22 @@ class MailFun { | @@ -85,6 +85,22 @@ class MailFun { | ||
| 85 | return 0; | 85 | return 0; | 
| 86 | } | 86 | } | 
| 87 | 87 | ||
| 88 | + /** | ||
| 89 | + * 匹配邮箱 | ||
| 90 | + * @param $str | ||
| 91 | + * @return mixed|string | ||
| 92 | + * @author:dc | ||
| 93 | + * @time 2023/11/24 10:04 | ||
| 94 | + */ | ||
| 95 | + public static function pregEmail($str){ | ||
| 96 | + preg_match('/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/',$str,$email); | ||
| 97 | + if(empty($email[0])){ | ||
| 98 | + // 邮箱2 | ||
| 99 | + preg_match('/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/',$str,$email); | ||
| 100 | + } | ||
| 101 | + return $email[0]??''; | ||
| 102 | + } | ||
| 103 | + | ||
| 88 | 104 | ||
| 89 | /** | 105 | /** | 
| 90 | * 邮件收件人/发件人 | 106 | * 邮件收件人/发件人 | 
| @@ -97,17 +113,18 @@ class MailFun { | @@ -97,17 +113,18 @@ class MailFun { | ||
| 97 | 113 | ||
| 98 | $strs = explode(',',$str); | 114 | $strs = explode(',',$str); | 
| 99 | foreach ($strs as $k=>$s){ | 115 | foreach ($strs as $k=>$s){ | 
| 100 | - preg_match('/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/',$s,$email); | ||
| 101 | - if(empty($email[0])){ | 116 | + $email = self::pregEmail($s); | 
| 117 | + | ||
| 118 | + if(empty($email)){ | ||
| 102 | $s = [ | 119 | $s = [ | 
| 103 | 'email' => '', | 120 | 'email' => '', | 
| 104 | 'name' => $s | 121 | 'name' => $s | 
| 105 | ]; | 122 | ]; | 
| 106 | }else{ | 123 | }else{ | 
| 107 | - $s = str_replace([$email[0],'"','<','>','>','<'],'',$s); | 124 | + $s = str_replace([$email,'"','<','>','>','<'],'',$s); | 
| 108 | $s = trim($s); | 125 | $s = trim($s); | 
| 109 | $s = [ | 126 | $s = [ | 
| 110 | - 'email' => $email[0], | 127 | + 'email' => $email, | 
| 111 | 'name' => $s | 128 | 'name' => $s | 
| 112 | ]; | 129 | ]; | 
| 113 | } | 130 | } | 
| @@ -36,7 +36,15 @@ class Verify { | @@ -36,7 +36,15 @@ class Verify { | ||
| 36 | * @time 2023/3/10 16:04 | 36 | * @time 2023/3/10 16:04 | 
| 37 | */ | 37 | */ | 
| 38 | public static function sEmail(string $email){ | 38 | public static function sEmail(string $email){ | 
| 39 | - return preg_match('/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',$email); | 39 | + if(preg_match('/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',$email)){ | 
| 40 | + return true; | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + if(preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/',$email)){ | ||
| 44 | + return true; | ||
| 45 | + } | ||
| 46 | + return false; | ||
| 47 | + | ||
| 40 | } | 48 | } | 
| 41 | 49 | ||
| 42 | /** | 50 | /** | 
- 
请 注册 或 登录 后发表评论