如何通过代码自动确认Outlook发送邮件的允许弹窗?
解决Outlook发邮件时自动触发安全弹窗确认的问题
哥们,我之前也被这个Outlook的安全弹窗折腾过好多次,每次手动点允许真的太烦了!给你分享几个亲测有效的解决方案,你可以根据自己的场景选:
方法1:修改Outlook信任设置(最简单,无需改代码)
直接让Outlook信任你的脚本操作,彻底关掉弹窗:
- 打开Outlook,点击顶部「文件」→「选项」→「信任中心」→「信任中心设置」
- 切换到「程序访问」选项卡,找到「电子邮件安全」下的「程序访问」区域
- 选择从不警告我可疑活动(注意:这个会降低一点安全性,如果你电脑环境安全的话完全没问题)
- 或者更稳妥的方式:把你的Python脚本所在文件夹添加到「受信任的位置」(在信任中心的「受信任位置」选项卡操作)
方法2:用自动化工具模拟点击(适合临时场景)
如果不想改动Outlook设置,可以用pyautogui模拟键盘或鼠标操作来点击弹窗按钮:
首先安装pyautogui:
pip install pyautogui
然后修改你的脚本:
import win32com.client import pyautogui import time def send_notification(): outlook = win32com.client.Dispatch('outlook.application') mail = outlook.CreateItem(0) mail.To = 'xxx@xx.com' mail.Subject = 'xxx' mail.HTMLBody = body_all # 延迟2秒,等安全弹窗加载完成(可根据自己电脑速度调整时长) time.sleep(2) # 模拟快捷键点击:英文弹窗是Alt+Y,中文弹窗如果按钮显示「允(Y)」也用这个组合键 pyautogui.hotkey('alt', 'y') # 也可以用坐标点击(先运行pyautogui.position()获取按钮的准确坐标) # pyautogui.click(x=123, y=456) mail.Send()
⚠️ 注意:坐标会随Outlook版本、系统语言、屏幕分辨率变化,用快捷键的稳定性更高。
方法3:使用Redemption库(最稳定的专业方案)
Redemption是专门绕过Outlook安全限制的COM组件,完全不会触发弹窗,适合长期使用:
- 先安装Redemption组件(搜索Redemption Outlook下载对应版本,安装后完成组件注册)
- 修改脚本如下:
import win32com.client def send_notification(): # 初始化Redemption会话 session = win32com.client.Dispatch("Redemption.RDOSession") session.Logon() # 自动使用当前Outlook登录的账号,无需手动输入密码 # 创建邮件 mail = session.CreateMessageFromMsgFile() mail.To = 'xxx@xx.com' mail.Subject = 'xxx' mail.HTMLBody = body_all # 发送邮件,无安全弹窗干扰 mail.Send() session.Logoff()
这个方法是企业级开发常用的,稳定性拉满,完全不用担心弹窗问题。
内容的提问来源于stack exchange,提问作者Rysio
相关产品推荐
相关产品推荐

