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

如何在Outlook收到特定主题邮件时触发Python Selenium脚本

在Outlook 365(64位版本2208)中触发Python Selenium脚本的方案

以下是两种实用的实现方式,根据你的需求选择即可:

方法一:Outlook规则 + VBA脚本触发

这种方式利用Outlook自带的规则筛选邮件,通过VBA调用Python脚本,适合习惯用Outlook原生功能的场景。

  1. 创建邮件筛选规则

    • 打开Outlook,点击「文件」>「管理规则和通知」>「新建规则」
    • 选择「对我接收的邮件应用规则」,点击下一步
    • 勾选「主题包含特定词语」,点击「特定词语」输入你要匹配的主题关键词,确定后继续下一步
    • 勾选「运行脚本」选项(如果看不到这个选项,先按下面步骤启用宏),点击「脚本」准备关联VBA代码
  2. 启用Outlook宏功能

    • 点击「文件」>「选项」>「信任中心」>「信任中心设置」>「宏设置」
    • 选择「启用所有宏」(或「启用签署的宏」,若你会给VBA脚本签名),确定后重启Outlook
  3. 编写VBA调用Python脚本

    • 按Alt+F11打开VBA编辑器,在「Project1」下的「ThisOutlookSession」模块中粘贴以下代码:
      Sub RunSeleniumScript(Item As Outlook.MailItem)
          Dim shell As Object
          Set shell = CreateObject("WScript.Shell")
          ' 替换为你的Python路径和Selenium脚本路径
          Dim pythonPath As String
          Dim scriptPath As String
          pythonPath = "C:\Python39\python.exe" ' 示例路径,根据实际修改
          scriptPath = "C:\Scripts\your_selenium_script.py" ' 示例路径,根据实际修改
          shell.Run pythonPath & " " & scriptPath, 0, False
          Set shell = Nothing
      End Sub
      
    • 保存代码后,回到规则设置界面,选择这个刚创建的脚本,完成规则配置

方法二:纯Python监控Outlook邮箱

这种方式不需要启用宏,直接用Python监听收件箱,适合偏好纯代码实现的场景。

  1. 安装依赖库
    打开命令提示符,运行以下命令安装所需工具:

    pip install pywin32 selenium
    
  2. 编写监控+触发脚本

    import win32com.client
    import time
    from selenium import webdriver
    
    def monitor_inbox():
        outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
        inbox = outlook.GetDefaultFolder(6)  # 6代表Outlook默认收件箱
        messages = inbox.Items
        messages.Sort("[ReceivedTime]", True)  # 按接收时间倒序排列
    
        # 记录已处理邮件ID,避免重复触发
        processed_ids = set()
    
        while True:
            for msg in messages:
                if msg.EntryID not in processed_ids:
                    # 替换为你要匹配的主题关键词
                    if "目标主题关键词" in msg.Subject:
                        print(f"触发Selenium任务:收到主题为「{msg.Subject}」的邮件")
                        run_selenium_task()
                    processed_ids.add(msg.EntryID)
            time.sleep(60)  # 每分钟检查一次收件箱,可按需调整间隔
    
    def run_selenium_task():
        # 这里写入你的Selenium业务逻辑
        driver = webdriver.Chrome()
        driver.get("https://example.com")
        # 后续操作:点击、输入等...
        driver.quit()
    
    if __name__ == "__main__":
        monitor_inbox()
    
  3. 运行与后台保持
    直接执行该Python脚本即可开始监控,若需要长期后台运行,可借助nssm等工具将脚本注册为Windows服务,避免关闭命令窗口后停止运行。

注意事项

  • 方法一中的VBA宏可能被Outlook安全策略拦截,需确保脚本来源安全,或在信任中心添加信任路径
  • 两种方法都要保证Python路径、脚本路径的正确性,且当前用户有足够的文件访问权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:22:51