瀏覽代碼

增加获取验证码的重试时间,避免段时间内无法获取到邮件导致失败

chendeben 1 年之前
父節點
當前提交
b8606f2f3b
共有 1 個文件被更改,包括 12 次插入2 次删除
  1. 12 2
      get_email_code.py

+ 12 - 2
get_email_code.py

@@ -65,7 +65,17 @@ class EmailVerificationHandler:
         data = response.json()
         data = response.json()
         return data.get('data', [])
         return data.get('data', [])
 
 
-    def _get_latest_mail_code(self, max_attempts=10, retry_interval=3):
+    def _get_latest_mail_code(self):
+        # 第一阶段:10次尝试,每次间隔3秒
+        code = self._attempt_get_code(max_attempts=10, retry_interval=3)
+        if code:
+            return code
+            
+        print("第一阶段未获取到验证码,进入第二阶段重试...")
+        # 第二阶段:100次尝试,每次间隔5秒
+        return self._attempt_get_code(max_attempts=100, retry_interval=5)
+        
+    def _attempt_get_code(self, max_attempts, retry_interval):
         for attempt in range(max_attempts):
         for attempt in range(max_attempts):
             url = f"{self.base_url}/mail/lists?u={self.username}&a={self.auth_token}"
             url = f"{self.base_url}/mail/lists?u={self.username}&a={self.auth_token}"
             response = self.session.get(url, headers=self.headers)
             response = self.session.get(url, headers=self.headers)
@@ -94,7 +104,7 @@ class EmailVerificationHandler:
                 mail_text = latest_mail.get('content', '')
                 mail_text = latest_mail.get('content', '')
                 
                 
                 # 从邮件文本中提取指定格式的验证码
                 # 从邮件文本中提取指定格式的验证码
-                code_match = re.search(r">(\d{6})<", mail_text)
+                code_match = re.search(r">(d{6})<", mail_text)
                 if code_match:
                 if code_match:
                     return code_match.group(1)
                     return code_match.group(1)
             except Exception as e:
             except Exception as e: