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

Python收发邮件时如何避免Windows弹出打开方式选择提示窗口

问题解决:Python读取邮件触发Windows打开方式弹窗/自动新开浏览器标签页

问题根源

你的readMail函数内置了HTML邮件自动打开逻辑:只要检测到邮件内容类型为text/html,就会自动生成本地index.html文件,调用webbrowser.open(filepath)触发系统默认程序打开该文件,这是弹窗和自动新开标签页的核心原因。
同时你在writeMail发信逻辑中,哪怕html变量为空值,也附加了空的text/html类型邮件部分,导致所有自己发出的邮件都会触发上述读取逻辑。

解决方案

方案1:彻底删除自动打开逻辑(推荐,直接杜绝弹窗)

直接注释或删除readMail中的如下代码块即可:

if content_type == "text/html":
    # if it's HTML, create a new HTML file and open it in browser
    folder_name = mail.clean(subject)
    if not os.path.isdir(folder_name):
        # make a folder for this email (named after the subject)
        os.mkdir(folder_name)
    filename = "index.html"
    filepath = os.path.join(folder_name, filename)
    # write the file
    open(filepath, "w").write(body)
    # open in the default browser
    webbrowser.open(filepath)

如果仅需要保留HTML文件本地存储功能、不需要自动打开,只删除最后一行webbrowser.open(filepath)即可。

方案2:优化发信逻辑,避免冗余HTML部分

你当前发的邮件仅需要传输纯文本数据,不需要HTML部分,修改writeMail中的代码,删除冗余的HTML附件逻辑:

# 仅保留纯文本部分即可,删除原有HTML相关代码
text = str(data)
part1 = MIMEText(text, "plain")
message.attach(part1)

修改后你发出的邮件不会再携带text/html类型内容,读取时也就不会触发自动打开逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:36:03