proxy for inbox.lv

This commit is contained in:
2026-04-09 08:02:23 +02:00
parent c84266f8fd
commit d45d6f4d7d
2 changed files with 20 additions and 12 deletions
+19 -11
View File
@@ -41,11 +41,19 @@ GMX_DOMAINS = (
"gmx.fr", "gmx.us", "gmx.sg", "gmx.ch", "gmx.pt", "gmx.fr", "gmx.us", "gmx.sg", "gmx.ch", "gmx.pt",
) )
# 需要通过代理读取的域名列表
PROXY_DOMAINS = GMX_DOMAINS + ("inbox.lv",)
def is_gmx_account(login: str) -> bool: def is_gmx_account(login: str) -> bool:
"""判断邮箱是否属于GMX域名""" """判断邮箱是否属于GMX域名"""
return any(d in login.lower() for d in GMX_DOMAINS) return any(d in login.lower() for d in GMX_DOMAINS)
def is_proxy_account(login: str) -> bool:
"""判断邮箱是否需要通过代理读取(GMX 或 inbox.lv"""
return any(d in login.lower() for d in PROXY_DOMAINS)
# 邮箱列表(简化为常量) # 邮箱列表(简化为常量)
REDIRECTION_MAILS = "appointment2022@aol.com, chenpeijun@aol.com,hongjiang176@aol.com,ciyuexie@aol.com,rutger.62@aol.com,ciccidaniel@aol.com,armasgoodman@aol.com,wknd.gemerine@aol.com,rafmail1981@aol.com,tonovichivanenaki@aol.com,hetland.ari@aol.com,mateusiversen@aol.com,lacerdaraffaello@aol.com,anasida76@aol.com,liamolinari@aol.com,sen70zib@aol.com,mezeiderrick@aol.com,stanisl49avchic@aol.com,damcvrobaneuron@aol.com,suyzanna_fleona@aol.com,dxealing.dissa@aol.com,hogg.karen@aol.com,obocharovamarina@aol.com,buchholzjohann@aol.com,orn.cecchini@aol.com,percivaltorgersen@aol.com,candalgudrun@aol.com,filimonis.76@aol.com,bengann_100@aol.com,axelhanne@aol.com,tiffanylarochelle@aol.com,nicoleta.r@aol.com,eichenbaum.1963@aol.com,kotensasharev@aol.com,samognat32@aol.com,edem_headshot@aol.com,kozmakuzmich1960@aol.com,damonsvensson@aol.com,anders.riva@aol.com,caiminwei123@gmail.com,yulingguo086@gmail.com,yingxiaolu086@gmail.com,lijiazhen0035@gmail.com,fangp370@gmail.com,huangyayu10086@gmail.com,fuziyuan110@gmail.com,xinyingdu886@gmail.com,yasiaforever.1971@aol.com,lukaszfidalgo@aol.com,zaichi29@aol.com,prostotakitak.1974@aol.com,mo90nroe@aol.com,blonde.87@aol.com,dimidrol.1969@aol.com" REDIRECTION_MAILS = "appointment2022@aol.com, chenpeijun@aol.com,hongjiang176@aol.com,ciyuexie@aol.com,rutger.62@aol.com,ciccidaniel@aol.com,armasgoodman@aol.com,wknd.gemerine@aol.com,rafmail1981@aol.com,tonovichivanenaki@aol.com,hetland.ari@aol.com,mateusiversen@aol.com,lacerdaraffaello@aol.com,anasida76@aol.com,liamolinari@aol.com,sen70zib@aol.com,mezeiderrick@aol.com,stanisl49avchic@aol.com,damcvrobaneuron@aol.com,suyzanna_fleona@aol.com,dxealing.dissa@aol.com,hogg.karen@aol.com,obocharovamarina@aol.com,buchholzjohann@aol.com,orn.cecchini@aol.com,percivaltorgersen@aol.com,candalgudrun@aol.com,filimonis.76@aol.com,bengann_100@aol.com,axelhanne@aol.com,tiffanylarochelle@aol.com,nicoleta.r@aol.com,eichenbaum.1963@aol.com,kotensasharev@aol.com,samognat32@aol.com,edem_headshot@aol.com,kozmakuzmich1960@aol.com,damonsvensson@aol.com,anders.riva@aol.com,caiminwei123@gmail.com,yulingguo086@gmail.com,yingxiaolu086@gmail.com,lijiazhen0035@gmail.com,fangp370@gmail.com,huangyayu10086@gmail.com,fuziyuan110@gmail.com,xinyingdu886@gmail.com,yasiaforever.1971@aol.com,lukaszfidalgo@aol.com,zaichi29@aol.com,prostotakitak.1974@aol.com,mo90nroe@aol.com,blonde.87@aol.com,dimidrol.1969@aol.com"
@@ -114,8 +122,8 @@ class MailReader:
def read_emails(self, mails_messages: List[MailPojo]) -> List[MailPojo]: def read_emails(self, mails_messages: List[MailPojo]) -> List[MailPojo]:
"""读取邮件""" """读取邮件"""
# ── GMX账户 → 使用代理连接(失败自动重试最多3次)── # ── GMX / inbox.lv 账户 → 使用代理连接(失败自动重试最多3次)──
if is_gmx_account(self.login) and self.proxy is not None: if is_proxy_account(self.login) and self.proxy is not None:
return self._read_emails_with_proxy_retry(mails_messages) return self._read_emails_with_proxy_retry(mails_messages)
else: else:
return self._read_emails_internal(create_imap(self.login), mails_messages) return self._read_emails_internal(create_imap(self.login), mails_messages)
@@ -125,13 +133,13 @@ class MailReader:
mails_messages: List[MailPojo], mails_messages: List[MailPojo],
max_retries: int = 8, max_retries: int = 8,
) -> List[MailPojo]: ) -> List[MailPojo]:
"""通过 ProxyIMAPClient 读取 GMX 邮件,失败时最多重试 max_retries 次。""" """通过 ProxyIMAPClient 读取邮件(GMX / inbox.lv,失败时最多重试 max_retries 次。"""
imap_server = get_imap_server(self.login) imap_server = get_imap_server(self.login)
last_error: Optional[Exception] = None last_error: Optional[Exception] = None
for attempt in range(1, max_retries + 1): for attempt in range(1, max_retries + 1):
try: try:
print("[GMX-Proxy] {}{} via {} (tentative {}/{})".format( print("[Proxy] {}{} via {} (tentative {}/{})".format(
self.login, imap_server, self.proxy, attempt, max_retries)) self.login, imap_server, self.proxy, attempt, max_retries))
imap = ProxyIMAPClient( imap = ProxyIMAPClient(
host=imap_server, host=imap_server,
@@ -143,10 +151,10 @@ class MailReader:
return self._read_emails_internal(imap, mails_messages) return self._read_emails_internal(imap, mails_messages)
except Exception as exc: except Exception as exc:
last_error = exc last_error = exc
print("[GMX-Proxy] Échec tentative {}/{} pour {} : {}".format( print("[Proxy] Échec tentative {}/{} pour {} : {}".format(
attempt, max_retries, self.login, exc)) attempt, max_retries, self.login, exc))
print("[GMX-Proxy] Toutes les tentatives ont échoué pour {} : {}".format( print("[Proxy] Toutes les tentatives ont échoué pour {} : {}".format(
self.login, last_error)) self.login, last_error))
self.failed_gmx_list.append(self.login) self.failed_gmx_list.append(self.login)
return [] return []
@@ -446,13 +454,13 @@ def find_links_to_validate_from_mail_list(
except Exception as e: except Exception as e:
print("Error processing mail: {},login: {}, password: {}".format(e,mail.mail, mail.password)) print("Error processing mail: {},login: {}, password: {}".format(e,mail.mail, mail.password))
# ── Résumé des comptes GMX en échec ────────────────────── # ── Résumé des comptes proxy en échec ──────────────────────
if failed_gmx: if failed_gmx:
print("\n[GMX-Proxy] ⚠️ {} compte(s) GMX non lus :".format(len(failed_gmx))) print("\n[Proxy] ⚠️ {} compte(s) non lus (GMX / inbox.lv) :".format(len(failed_gmx)))
for addr in failed_gmx: for addr in failed_gmx:
print("{}".format(addr)) print("{}".format(addr))
else: else:
print("\n[GMX-Proxy] ✅ Tous les comptes GMX ont été lus avec succès.") print("\n[Proxy] ✅ Tous les comptes GMX / inbox.lv ont été lus avec succès.")
# 刷新成功的项目 # 刷新成功的项目
_refreshed_successful_items = MONGO_STORE_MANAGER.get_all_successful_items_for_day() _refreshed_successful_items = MONGO_STORE_MANAGER.get_all_successful_items_for_day()
@@ -487,8 +495,8 @@ def find_links_to_validate_from_mail_list(
if __name__ == '__main__': if __name__ == '__main__':
# 读取联系人列表 # 读取联系人列表
contact_to_book_list = read_contacts( contact_to_book_list = read_contacts(
file_name="~/Desktop/contact_list_inbox_lv_100.xlsx") # file_name="~/Desktop/contact_list_inbox_lv_100.xlsx")
# file_name="~/Desktop/contact_list_2026-04-02.xlsx") file_name="~/Desktop/contact_list_2026-04-07.xlsx")
# file_name="~/Desktop/contact_list_2026-04-01.xlsx") # file_name="~/Desktop/contact_list_2026-04-01.xlsx")
# file_name="~/Desktop/contact_list_2026-03-28.xlsx") # file_name="~/Desktop/contact_list_2026-03-28.xlsx")
# file_name="~/Desktop/contact_list_2025-11-28.xlsx") # file_name="~/Desktop/contact_list_2025-11-28.xlsx")
+1 -1
View File
@@ -93,7 +93,7 @@ class ProxyManager:
return [FR_PROXY_RES_OXY, FR_PROXY_ASOCK_RES_2, FR_DATA_IMPULSE_RES, FR_ASOCKS_MOBILE_PROXY] return [FR_PROXY_RES_OXY, FR_PROXY_ASOCK_RES_2, FR_DATA_IMPULSE_RES, FR_ASOCKS_MOBILE_PROXY]
def get_proxy_for_appointment_request(self) -> dict: def get_proxy_for_appointment_request(self) -> dict:
# return self.get_random_sticky_iproyal_proxy() return self.get_random_sticky_iproyal_proxy()
_chosen_proxy = random.choice(MOBILE_PROXY_LIST) _chosen_proxy = random.choice(MOBILE_PROXY_LIST)
if "oxylabs" in _chosen_proxy["http"]: if "oxylabs" in _chosen_proxy["http"]:
self.logger.info("use oxylabs proxy") self.logger.info("use oxylabs proxy")