You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python同时检查多个邮件账户的收件箱邮件数量?

如何扩展Python脚本同时检查多个邮箱账户的邮件数量?

这事儿其实很好解决,核心就是把多个账户的配置信息规整成一个可循环的集合,然后重复执行你原来的单账户检查逻辑就行。别说2个、3个,后续再加N个账户都只需要在配置里加一行,非常方便。

修改后的完整代码

from imapclient import IMAPClient

# 把所有需要检查的账户信息存在一个列表里,每个元素是字典,字段清晰好维护
accounts = [
    {
        "name": "name_of_account_1",
        "username": "username@domain.onmicrosoft.com",
        "password": "password",
        "imap_server": "outlook.office365.com"
    },
    {
        "name": "name_of_account_2",
        "username": "user2@domain.onmicrosoft.com",
        "password": "password2",
        "imap_server": "outlook.office365.com"
    },
    {
        "name": "name_of_account_3",
        "username": "user3@domain.com",
        "password": "password3",
        "imap_server": "imap.domain.com"  # 不同类型的IMAP服务器也能兼容
    }
]

# 循环遍历每个账户,执行邮件数量检查逻辑
for account in accounts:
    try:
        # 初始化IMAP客户端并完成登录
        client = IMAPClient(account["imap_server"], ssl=True)
        client.login(account["username"], account["password"])
        
        # 选中收件箱(只读模式避免误操作)并查询所有邮件
        client.select_folder("INBOX", readonly=True)
        result = client.search()
        print(f"{account['name']}: {len(result)}")
        
        # 完成操作后登出账户
        client.logout()
    except Exception as e:
        # 新增异常处理,避免单个账户出错导致整个脚本终止
        print(f"处理账户 {account['name']} 时遇到问题: {str(e)}")

关键改动说明

  1. 配置聚合:将每个账户的独立参数打包成字典,再统一存入列表,后续新增/删除账户只需要修改这个列表,不用动核心逻辑。
  2. 循环复用逻辑:通过for循环遍历所有账户,重复执行你原本写好的单账户检查流程,最大化复用代码。
  3. 异常容错:加入try-except块,就算某个账户因为密码错误、网络波动或服务器异常无法访问,也不会影响其他账户的检查,还能输出错误信息方便排查。

输出示例

name_of_account_1: 18
name_of_account_2: 42
name_of_account_3: 7

内容的提问来源于stack exchange,提问作者yabbah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 17:12:37