正在显示
1 个修改的文件
包含
19 行增加
和
8 行删除
@@ -2,11 +2,13 @@ | @@ -2,11 +2,13 @@ | ||
2 | 2 | ||
3 | namespace Controller; | 3 | namespace Controller; |
4 | 4 | ||
5 | +use Lib\Imap\ImapConfig; | ||
6 | +use Lib\Imap\ImapPool; | ||
5 | use Lib\Mail\Mail; | 7 | use Lib\Mail\Mail; |
6 | use Lib\Mail\MailFun; | 8 | use Lib\Mail\MailFun; |
7 | use Lib\Verify; | 9 | use Lib\Verify; |
8 | use Model\emailSql; | 10 | use Model\emailSql; |
9 | - | 11 | +use Service\SyncMail; |
10 | 12 | ||
11 | 13 | ||
12 | /** | 14 | /** |
@@ -106,16 +108,23 @@ class Login { | @@ -106,16 +108,23 @@ class Login { | ||
106 | } | 108 | } |
107 | 109 | ||
108 | 110 | ||
111 | + $mailClient = ImapPool::get( | ||
112 | + (new ImapConfig()) | ||
113 | + ->setPassword($formData['password']) | ||
114 | + ->setHost($formData['imap']) | ||
115 | + ->setEmail($formData['email']) | ||
116 | + ); | ||
109 | // 进行远程登录,验证 | 117 | // 进行远程登录,验证 |
110 | - $mailClient = (new Mail($formData['email'],$formData['password'],$formData['imap'])); | 118 | +// $mailClient = (new Mail($formData['email'],$formData['password'],$formData['imap'])); |
119 | + | ||
111 | 120 | ||
112 | - $login = $mailClient->login(false); | ||
113 | - if( $login === 0){ | ||
114 | - app()->e('login_error_imap'); | ||
115 | - }elseif ($login === -1){ | ||
116 | - app()->e('email_server_error'); | 121 | + $login = $mailClient->login(); |
122 | + if(!$login->isOk()){ | ||
123 | + app()->e($login->getMessage()?'登录失败:'.$login->getMessage():'IMAP:服务器连接失败'); | ||
117 | } | 124 | } |
118 | 125 | ||
126 | + | ||
127 | + | ||
119 | // 验证smtp登录 | 128 | // 验证smtp登录 |
120 | if(!MailFun::smtpLoginTest($formData['smtp'],$formData['email'],$formData['password'])){ | 129 | if(!MailFun::smtpLoginTest($formData['smtp'],$formData['email'],$formData['password'])){ |
121 | app()->e('email_smtp_server_error'); | 130 | app()->e('email_smtp_server_error'); |
@@ -154,7 +163,9 @@ class Login { | @@ -154,7 +163,9 @@ class Login { | ||
154 | 163 | ||
155 | if($ret){ | 164 | if($ret){ |
156 | // 同步一次文件夹 | 165 | // 同步一次文件夹 |
157 | - $mailClient->syncFolder(db()->value(emailSql::hasEmail($formData['email']))); | 166 | + try{ |
167 | + (new SyncMail($formData['email'],$mailClient))->sync(false); | ||
168 | + }catch (\Throwable $e){} | ||
158 | 169 | ||
159 | $ret = db()->first( | 170 | $ret = db()->first( |
160 | emailSql::first( | 171 | emailSql::first( |
-
请 注册 或 登录 后发表评论