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

如何仅隐藏邮件附件并读取正文(附件被识别为垃圾文件)

嘿,我来帮你搞定这个需求!要实现「隐藏邮件附件+正常读正文+把附件标记成垃圾文件」的效果,不同场景有不同的操作方式,我给你分情况说清楚:

一、主流邮件客户端的手动操作方法

这适合处理单封或少量邮件,简单直接:

  • Outlook(桌面版):
    1. 打开目标邮件,点击顶部的「附件」选项卡
    2. 找到「附件工具」里的「隐藏附件」按钮;要是找不到,右键点附件直接选「隐藏」就行
    3. 想把附件标记成垃圾的话,右键附件选「删除」,再把删除的附件移到垃圾文件夹;部分版本也支持直接右键附件选「标记为垃圾」
  • Gmail(网页版):
    1. 打开邮件后,附件会显示在邮件下方,点附件右侧的三个点「⋮」
    2. 选「下载到垃圾文件夹」,或者直接删除附件后去已删除文件夹标记为垃圾
    3. 要隐藏附件显示的话,点击附件区域右上角的「-」号,就能折叠附件部分,只看正文啦
二、批量处理的脚本方案(适合大量邮件)

如果要处理几十上百封带附件的邮件,手动操作太费时间,用Python脚本批量处理就很高效,我给你写了个示例,你可以根据自己的邮箱类型调整:

import imaplib
import email
from email.header import decode_header

# 配置你的邮箱信息
imap_server = "imap.example.com"  # 替换成你的邮箱IMAP服务器,比如Gmail是imap.gmail.com
username = "your_email@example.com"
password = "your_password"  # 企业邮箱或Gmail可能需要用应用密码

# 连接邮箱
mail = imaplib.IMAP4_SSL(imap_server)
mail.login(username, password)
mail.select("inbox")  # 选择收件箱,也可以选其他文件夹

# 搜索所有带附件的邮件
status, messages = mail.search(None, 'HASATTACH')
message_ids = messages[0].split()

for msg_id in message_ids:
    # 获取邮件内容
    status, msg_data = mail.fetch(msg_id, "(RFC822)")
    for response_part in msg_data:
        if isinstance(response_part, tuple):
            msg = email.message_from_bytes(response_part[1])
            # 读取邮件正文
            if msg.is_multipart():
                for part in msg.walk():
                    content_type = part.get_content_type()
                    content_disposition = str(part.get("Content-Disposition"))
                    # 跳过附件,只提取正文
                    if "attachment" not in content_disposition:
                        body = part.get_payload(decode=True).decode()
                        print(f"邮件ID {msg_id.decode()} 的正文:\n{body}\n")
            else:
                body = msg.get_payload(decode=True).decode()
                print(f"邮件ID {msg_id.decode()} 的正文:\n{body}\n")
            
            # 将带附件的邮件移到垃圾文件夹(相当于把附件标记为垃圾)
            # Gmail用这个标签
            mail.store(msg_id, '+X-GM-LABELS', '\\Trash')
            # Outlook的话可以用下面这行,之后要执行mail.expunge()才会彻底删除
            # mail.store(msg_id, '+FLAGS', '\\Deleted')

# 关闭连接
mail.close()
mail.logout()

这个脚本会自动读取所有带附件邮件的正文,同时把这些邮件移到垃圾文件夹(附件会跟着一起被标记为垃圾)。如果只想隐藏附件而不删除,你可以修改脚本逻辑,重新构造去掉附件的邮件再保存回邮箱。

三、一些注意事项
  • 不同邮件客户端的功能位置可能略有差异,要是找不到对应选项,直接在客户端的帮助中心搜「隐藏附件」「标记附件为垃圾」就能找到指引
  • 用脚本的话,要先确认你的邮箱开启了IMAP/SMTP权限,比如Gmail需要开启「应用专用密码」,企业邮箱要找管理员确认权限
  • 企业邮箱可能有安全限制,修改邮件内容前最好先测试几封邮件,避免出现问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:56:36