全部文章

IMAP 和 POP3 的区别:IMAP 会删除服务器上的邮件吗

会,前提是你删除了邮件。IMAP 删除邮件时,删的是服务器上的那一封,所以你连接的每个 App 里都会同步删除。服务器保存着你邮件唯一的真正副本,各个 App 都在这份副本上操作:阅读或下载邮件不会删掉任何东西,但在一个 App 里删除,所有 App 里都会删除。大多数 App 会先把邮件移到废纸篓(Trash)文件夹,在那里你还能找回;Gmail 则通常会把它归档到 All Mail(所有邮件)。IMAP 和 POP3 的区别就在这里:POP3 会把邮件下载到一台设备上,并可能根据设置删除服务器上的副本。如果你想在一个什么都删不掉的 App 里阅读自有域名上的别名邮件,CatchNone 会通过 IMAP 或 JMAP 以只读方式读取那个邮箱,从不在服务器上标记、移动或删除任何邮件,适用于 iPhone、iPad 和 Mac。

IMAP 会在所有 App 中删除服务器上的邮件吗?

会,不过通常是先移到废纸篓,而不是直接永久删除。现行的 IMAP(Internet Message Access Protocol,互联网消息访问协议)标准 RFC 9051 把 IMAP 描述为一种操作“远程邮件文件夹”的方式,用起来就像操作本地文件夹一样。IMAP App 确实会下载邮件:你的手机、笔记本电脑和网页邮箱可能各自缓存副本,以加快速度、方便离线阅读,但这些副本都以服务器为准。邮件一旦从服务器上消失,下次同步时就会从每个 App 中消失。

删除分两步:先标记,再清除

  1. App 给邮件设置 \Deleted 标记。邮件被标记为待删除,但仍然存在。
  2. 执行 EXPUNGE 命令,或用 CLOSE 关闭文件夹,会永久删除该文件夹中所有带标记的邮件。

在第二步之前,清除标记就能让邮件恢复原状。较早的桌面 App 会把这个过程显示出来:Microsoft 的 Outlook 2010 帮助显示,标记为删除的 IMAP 邮件会带着删除线,直到被清除(purge);之后,“它们会从 IMAP 邮件服务器中删除,且无法恢复”。

删除通常意味着“移到废纸篓”

现在大多数 App 会改为把删除的邮件移到服务器上的废纸篓文件夹。用 IMAP 的术语说,这通常是一个 MOVE:把复制、设置 \Deleted 标记和清除(expunge)合成一步完成。每台设备都会在废纸篓里看到这封邮件,只有废纸篓被清空(由你、App 或服务商清空)后,邮件才会彻底消失。截至 2026 年 9 月,Gmail 会在 30 天后永久删除废纸篓中的邮件;Apple 的 iPhone“邮件”使用手册也指出,无论你的 iPhone 如何设置,iCloud 保留已删除邮件的时间都不会超过 30 天。

Gmail:是标签,不是文件夹

Gmail 把标签以文件夹的形式呈现给 IMAP App,All Mail(所有邮件)、Spam(垃圾邮件)和 Trash(已删除邮件)等系统文件夹位于 [Gmail] 下。在标签文件夹中删除邮件,通常只是去掉这个标签。Google 的 IMAP 设置指南写道:“你从 IMAP 文件夹中删除的邮件,可以在 Gmail 的‘所有邮件’标签中找到。”它还提醒不要让 App 把删除的邮件放进 Gmail 的废纸篓,因为这些邮件“30 天后会从 Gmail 中永久删除”。Gmail 自己在服务器端的删除设置见下表。

Outlook 会删除服务器上的 IMAP 邮件吗?

会。Outlook 通过 IMAP 连接时,会像其他 App 一样在服务器副本上操作,所以在 Outlook 中删除会同步到每台设备;某些较早的版本会像上文所说的那样,先用删除线显示邮件。如果你的邮箱是 Outlook.com 或 Hotmail,它的 IMAP 服务器是 outlook.office365.com,端口 993,而且 Microsoft 要求使用新式登录(OAuth2)。自 2024 年 9 月 16 日起,只发送用户名和密码的 App 已无法再用于 Outlook.com 和 Hotmail 账户。

常用 App 中删除的邮件去了哪里

App 在哪里查看 可以选择什么
iPhone 上的“邮件”(iOS 27) “设置”>“App”>“邮件”> Mail Accounts(邮件账户)> 该账户 > Account Settings(账户设置)> Advanced(高级)。iCloud 账户:Mail Accounts(邮件账户)>“iCloud”> Mailbox Behaviors(邮箱行为) Move Discarded Messages Into:(将废弃的邮件移到:)Deleted Mailbox(已删除邮箱)或 Archive Mailbox(归档邮箱)。Remove:(移除:)已删除的邮件保留多久
Mac 上的“邮件”(macOS 27) “邮件”>“设置”> Accounts(账户)> Mailbox Behaviors(邮箱行为) Trash Mailbox(废纸篓邮箱):服务器上的某个邮箱、On My Mac(我的 Mac 上)中的某个邮箱,或 None(无);以及 Erase deleted messages(抹掉已删除的邮件)
Thunderbird(桌面版,截至 2026 年 9 月的当前版本) Account Settings(账户设置)> 该账户 > Server Settings(服务器设置) When I delete a message:(删除邮件时:)Move it to this folder(移到此文件夹)、Just mark it as deleted(仅标记为已删除)或 Remove it immediately(立即删除)。另有 Clean up (“Expunge”) Inbox on Exit(退出时清理收件箱)和 Empty Trash on Exit(退出时清空废纸篓)
Gmail(网页版设置) “设置”>“查看所有设置”> Forwarding and POP/IMAP(转发和 POP/IMAP) 是否立即清除(expunge),以及被清除的邮件是归档、移到废纸篓,还是永久删除

有些选项会跳过废纸篓:Mac 上的 None(无)、Thunderbird 的 Remove it immediately(立即删除),以及 Gmail 的永久删除设置。在 Gmail 以外,Thunderbird 的 Just mark it as deleted(仅标记为已删除)也是如此:邮件会一直带着标记,直到文件夹被清除(expunge),然后就彻底没了。Thunderbird 默认使用废纸篓;对于 Gmail 账户,Google 建议选择 Just mark it as deleted,并取消勾选两个“on Exit”(退出时)选项。最终决定权在服务商:Apple 的 Mac 使用手册指出,如果服务器设置为删除较早的邮件,那么“无论你如何更改此选项”,这些邮件都会被删除。

在另一个 App 里读了邮件,其他地方也会显示已读吗?

使用 IMAP 时,会。已读状态就是存储在服务器上的 \Seen 标记,所以它会像删除一样同步。App 如果通过获取 BODY[] 来下载邮件,就会把邮件标为已读;如果获取的是 BODY.PEEK[],邮件则保持原状,App 可以在你打开邮件时再自行设置 \Seen。

下文介绍的较新协议 JMAP 也用同样的方式同步已读状态。POP3 完全没有已读状态,所以每台设备各记各的。例外是 Gmail:它的 POP 设置可以在其他 App 下载邮件时,把 Gmail 中的副本标为已读。

IMAP 和 POP3 的区别:哪个会把邮件留在服务器上?

IMAP 在设计上就会把邮件留在服务器上。POP3(Post Office Protocol version 3,邮局协议第 3 版,通常简称 POP;RFC 1939)的设计目标恰好相反:“通常,邮件会被下载,然后删除。”

IMAP POP3
邮件存放在哪里 服务器上;App 保留副本 下载它的那台设备上;服务器上的副本保留还是删除,取决于设置
多台设备 全部保持同步 各自单独下载
已读和未读 同步 不同步
文件夹 服务器上的文件夹,在每个 App 中都能看到 服务器上只有收件箱;其他文件夹都在本地
删除的效果 在服务器上删除,所有 App 同步,通常先进废纸篓 删除本地副本;只有 App 设置为移除服务器副本时,服务器上的副本才会删除
标准端口 993(TLS)或 143(先明文,再 STARTTLS) 995(TLS)或 110(先明文,再 STLS)

POP 的删除同样分两步。DELE 命令只会标记邮件,等 App 用 QUIT 结束会话时,服务器才会删除它。“Leave messages on server”(在服务器上保留邮件)是 App 里的设置。标准称之为 IMAP 功能的“弱化版”,而且服务器不一定遵守。服务器上的副本会怎样,取决于 App 和服务商:

  • Thunderbird:用 Thunderbird 账户向导新建的 POP 账户,默认最多在服务器上保留邮件 14 天,而且在本地删除邮件也会删除服务器上的副本。
  • Gmail:它的 POP 设置提供 Keep Gmail’s copy in the Inbox(在收件箱中保留 Gmail 副本)、Mark Gmail’s copy as read(将 Gmail 副本标为已读)、Archive Gmail’s copy(归档 Gmail 副本)或 Delete Gmail’s copy(删除 Gmail 副本)。
  • Yahoo:它的 POP 访问“下载的是邮件的副本,所以你可以在 App 中移动和删除它们,而不影响原始邮件”。

除非有特别的理由,否则请使用 IMAP。如果你希望由一台电脑保存唯一的副本,比如在关闭旧账户之前把里面的邮件全部下载下来,而且这台电脑有备份,那么 POP 就合适。

不确定你的 App 用的是哪一种?查看账户的服务器设置:端口 993 或 143 表示 IMAP,995 或 110 表示 POP。Exchange 和 Microsoft Graph 是 Microsoft 自己的协议,与这两者都不同。

哪些邮箱服务商提供 IMAP 或 POP3

服务器名称和端口(截至 2026 年 9 月):

服务商 IMAP POP3 值得了解 在 CatchNone 中阅读
Gmail imap.gmail.com,端口 993 pop.gmail.com,端口 995 IMAP 始终开启;比起应用专用密码,Google 更推荐 Sign in with Google(使用 Google 账号登录) 可以,使用应用专用密码
Outlook.com、Hotmail outlook.office365.com,端口 993 同一服务器,端口 995;开启 Let devices and apps use POP(允许设备和应用使用 POP)之前不可用 必须使用 OAuth 登录 不可以(仅支持 OAuth)
Yahoo Mail imap.mail.yahoo.com,端口 993 pop.mail.yahoo.com,端口 995 IMAP 需要 app password(应用密码) 可以,使用 app password
iCloud 邮件 imap.mail.me.com,端口 993 不提供 需要“App 专用密码” 可以,使用“App 专用密码”
Fastmail imap.fastmail.com,端口 993 pop.fastmail.com,端口 995 Basic 方案不支持(不能用第三方 App、app password 或 API 令牌);还提供 JMAP;IMAP 和 POP 都不支持 STARTTLS 可以,通过 IMAP 或 JMAP(Basic 方案除外)
Proton Mail 只能通过 Proton Mail Bridge 不提供 Bridge 需要付费方案 不可以

IMAP 只读访问是什么意思

IMAP 只读访问是指 App 用 EXAMINE 而不是 SELECT 打开文件夹,用 BODY.PEEK[] 而不是 BODY[] 下载邮件。邮箱里的一切都不会改变:没有邮件会被标为已读、加旗标、移动或删除。只读邮件客户端,就是只使用这些命令的 App。

从服务器的回复中可以看出区别。下面两段交互是 RFC 9051 中的示例(C: 是 App,S: 是服务器,blurdybloop 是标准里的示例文件夹名):

C: A142 SELECT INBOX
S: * 172 EXISTS
S: * OK [UIDVALIDITY 3857529045] UIDs valid
S: * OK [UIDNEXT 4392] Predicted next UID
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
S: * LIST () "/" INBOX
S: A142 OK [READ-WRITE] SELECT completed
C: A932 EXAMINE blurdybloop
S: * 17 EXISTS
S: * OK [UIDVALIDITY 3857529045] UIDs valid
S: * OK [UIDNEXT 4392] Predicted next UID
S: * LIST () "/" blurdybloop
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: * OK [PERMANENTFLAGS ()] No permanent flags permitted
S: A932 OK [READ-ONLY] EXAMINE completed

每段回复的最后一行表明文件夹是以什么方式打开的:[READ-WRITE] 或 [READ-ONLY]。PERMANENTFLAGS 列出 App 可以永久更改的标记:在这两个示例中,SELECT 之后是 \Deleted、\Seen 和新关键字(\*),EXAMINE 之后则一个都没有。对于用 EXAMINE 打开的文件夹,标准“不允许对邮箱的永久状态做任何更改,包括每个用户各自的状态”,关闭它也不会清除任何邮件。

步骤 普通邮件 App 只读 App
打开文件夹 SELECT EXAMINE
下载邮件 BODY[],或 BODY.PEEK[] 加上你打开邮件时设置的 \Seen 标记 只用 BODY.PEEK[];不会标为已读
删除 \Deleted 标记加 EXPUNGE,或 MOVE 到废纸篓 在用 EXAMINE 打开的文件夹中不允许

服务器会强制只读吗?

通过 IMAP 访问你自己的邮箱时,只有 App 主动要求,服务器才会强制只读。发送 EXAMINE 之后,服务器会在本次会话中让该文件夹保持只读。其他一切都由 App 自己掌握:

  • 同一个登录随时可以改为发送 SELECT。
  • EXAMINE 只针对一个文件夹。账户级命令,如 DELETE(删除整个文件夹)、RENAME 和 APPEND,仍然有效。
  • 用不用 BODY.PEEK[],完全由 App 决定。

服务器也可以通过访问权限(RFC 4314)强制只读,但这用于共享邮箱和委派邮箱。Gmail、Outlook.com、iCloud 和 Fastmail 都没有在文档中提供以只读方式登录你自己邮箱的 IMAP 选项;最接近的是 Fastmail 的只读 JMAP 令牌,见下文。

你的密码或登录方式允许做什么

你提供给 App 的 允许做什么
你的密码,或 Google 的“应用专用密码”、Apple 的“App 专用密码”、Fastmail 的 app password 完全访问你的邮件:读取、标记、移动和删除
Sign in with Google(使用 Google 账号登录) Google 对其唯一 IMAP 权限的描述是“Read, compose, send, and permanently delete all your email from Gmail”(读取、撰写、发送并永久删除你在 Gmail 中的所有电子邮件)
Sign in with Microsoft(使用 Microsoft 账户登录) Microsoft 的 IMAP 权限是“Read and write access to mailboxes via IMAP”(通过 IMAP 读写邮箱)
带 Read-only access(只读访问)权限并勾选 Email 的 Fastmail JMAP API 令牌 “你可以下载和查看数据,但数据无法被更改”

Fastmail 允许按数据类型限制 app password 的权限,但没有在文档中提供只读选项。Google 的只读权限只存在于它自己的 Gmail API,不适用于 IMAP。所以,当一个 App 说自己是只读的,你信任的是 App,而不是密码。

如何安全地试用新的邮件 App

  1. 选择 IMAP(或 JMAP),不要选 POP。POP App 可能在下载邮件的同时把它从服务器上拿走。IMAP App 会让邮件留在原处,不过删除仍会同步(见第 4 步)。
  2. 如果你的服务商和 App 支持只读令牌,就用它。这只适用于通过 JMAP 连接的 App。在 Fastmail 中,前往 Settings(设置)> Privacy & Security(隐私与安全)> Connected apps & API tokens(已连接的应用和 API 令牌)> Manage API tokens(管理 API 令牌)> New API token(新建 API 令牌),选择 JMAP,然后只勾选 Read-only access(只读访问)和 Email,其他都不选(Fastmail 的 API 令牌指南)。我们的 Fastmail 指南会一步步带你创建令牌。截至 2026 年 9 月,Fastmail 的 Basic 方案不提供 API 令牌。
  3. 否则,就给它单独一个应用密码。这样以后你可以只撤销这一个密码,不影响其他 App。如果是 iCloud,在 account.apple.com >“登录和安全”>“App 专用密码”中创建;我们的 iCloud App 专用密码指南有详细步骤。Gmail 需要先开启“两步验证”,而且如果 App 提供 Sign in with Google(使用 Google 账号登录),Google 更推荐用它;参见 Gmail 应用专用密码和 IMAP 设置。
  4. 添加账户后,在删除任何邮件之前,先检查它的删除设置。参照上面的表格:选择废纸篓或归档(Gmail 请按上文 Google 的建议来,而不是选废纸篓);在你信任这个 App 之前,避免选择 None、Remove it immediately,以及(Gmail 以外的)Just mark it as deleted。
  5. 用一封你不需要的邮件来测试。给自己发一封,在新 App 中打开,看看它在你常用的 App 里是否变成已读。然后在新 App 中删除它,看看它去了哪里。
  6. 不再使用这个 App 时,撤销密码。Apple 的 App 专用密码页面介绍了 Remove(移除)和 Revoke All(全部撤销)。Google 的应用专用密码在 myaccount.google.com/apppasswords 管理,具体见它的应用专用密码帮助页面。

JMAP 和 IMAP 简要对比

JMAP(JSON Meta Application Protocol)是一种较新的电子邮件协议,用途与 IMAP 相同,于 2019 年以 RFC 8620 和 RFC 8621 发布,主要作者是一位 Fastmail 工程师。它通过 HTTPS 发送 JSON,而不是像 IMAP 那样发送文本命令,而且每个请求都必须使用 TLS 1.2 或更高版本。IETF 的介绍文章称 IMAP“耗费资源”,不太适合移动网络。

在删除和已读状态方面,模型并不陌生:

  • 一封邮件可以同时位于多个邮箱中,很像 Gmail 的标签。
  • 删除通常是把它移到具有废纸篓角色(trash role)的邮箱。“销毁”(destroy)则会把它从所有邮箱中移除。
  • 已读状态是 $seen 关键字,相当于 JMAP 版的 \Seen。
  • 服务器会告诉每个 App,整个账户是否为只读。

这对你重要吗?只有当你的服务商提供 JMAP、你的 App 也支持它时才重要。Fastmail 在 Basic 以上的方案中提供 JMAP。App 方面,Thunderbird 桌面版目前还不支持,不过它 2026 年 9 月 2 日的公告表示,团队对以后加入支持持乐观态度。不管用哪种协议,删除都会像在 IMAP 中一样同步。

IMAP 的 993 端口安全吗?STARTTLS 是什么?

在传输过程中是安全的。在 993 端口上,IMAP 从第一个字节起就是加密的:连接一开始就进行 TLS 握手,与 HTTPS 为网站提供的保护属于同一类。这叫作隐式 TLS(implicit TLS)。143 端口是 IMAP 的明文端口,App 可以在这个端口上用 STARTTLS 命令把连接升级为加密连接。

如今的标准更推荐 993 端口。RFC 8314(2018 年)建议邮件 App 优先使用隐式 TLS 而不是 STARTTLS,并使用 TLS 1.2 或更高版本;RFC 9051 则要求所有按现行标准实现的服务器都提供隐式 TLS。2021 年的一项 USENIX Security 研究在邮件客户端和服务器中发现了 40 多个 STARTTLS 漏洞,还有约 320,000 台服务器(2%)存在命令注入风险。许多问题在披露后得到了修复,但作者的结论是,STARTTLS“应当避免使用”。Fastmail 的 IMAP 和 POP 都不提供 STARTTLS,Gmail 和 iCloud 则要求在 993 端口上使用加密连接(SSL/TLS)。

TLS 保护的是连接,而不是存储的邮件,它也不是端到端加密;RFC 8314 本身就这样说明。所以,993 端口保护的是传输途中的密码和邮件,仅此而已。薄弱环节在于你的密码(请使用双重认证登录和应用专用密码),以及每个 App 如何使用你给它的访问权限。

为别名准备的只读客户端:CatchNone

CatchNone 正是上文所说的只读客户端,专为你自有域名上的邮件别名打造。通过 IMAP(隐式 TLS,默认端口 993)时,它只用 EXAMINE 打开你的收件箱,用 BODY.PEEK[] 下载邮件;通过 JMAP 时,它使用访问令牌。它从不在你的服务器上标记、移动或删除任何东西,所以本文讲到的任何删除都不会由它引起。它直接从你的设备读取邮箱,这些邮件从不经过 CatchNone 的服务器。

每家网店、每个邮件订阅或每个账户都有自己的别名,每封邮件都会标出它送达的别名,哪个地址被泄露或被卖掉,一看便知。CatchNone 在设计上只负责收信:注册类邮件留在它自己的 App 里,与你的主收件箱分开。“免费方案”在你自己的域名上最多支持 10 个别名,Lite 和 Premium 没有数量限制。如果你想省掉域名和邮箱,Premium 还提供 @catchnone.com 地址,无需任何设置。

不过,你输入的密码或应用专用密码仍然拥有完全访问权限:只读是 App 的行为方式,而不是凭据所允许的范围。CatchNone 不支持 POP3、Exchange、STARTTLS 或 OAuth 登录,所以 Outlook.com 和 Hotmail 很可能无法连接,Gmail 则需要应用专用密码。你域名的邮件还必须先到达这个收件箱,通常靠的是 catch-all 地址(发往域名任何地址的邮件都进入同一个邮箱),这需要一家支持 catch-all 的邮件服务商;被归入垃圾邮件或被规则移走的邮件不会显示。下载 CatchNone,适用于 iPhone、iPad 和 Mac。

常见问题

“从服务器删除”是什么意思?

服务商的服务器保存着你邮件的主副本,App 里的都是副本。使用 IMAP 时,每次删除都是在服务器上删除,通常要经过废纸篓。使用 POP 时,这取决于设置:App 下载后要么保留服务器上的副本,要么将其删除。

误删了邮件,还能找回吗?

通常可以,只要动作够快。通过网页邮箱或任何 App,查看服务器上的废纸篓(或“已删除”)文件夹;如果是 Gmail,还要看看 All Mail(所有邮件)。截至 2026 年 9 月,Gmail 和 iCloud 最多把废纸篓中的邮件保留 30 天。一旦废纸篓被清空,或邮件被清除(expunge),它就会从每个 App 中消失。

能在手机上删除邮件,但在服务器上保留吗?

用 IMAP 删除不行,因为它会在所有地方删除。改用归档:在 iPhone 上,在 Move Discarded Messages Into(将废弃的邮件移到)下选择 Archive Mailbox(归档邮箱),这样你丢弃的邮件会进入归档邮箱,而不是废纸篓。使用 POP 并开启“在服务器上保留邮件”时,本地删除不会影响服务器上的副本,除非 App 同时设置了在服务器上删除,当前版本 Thunderbird 中新建的 POP 账户就是这样设置的(Until I delete them,即“直到我删除它们”)。服务器仍可能按自己的策略删除旧邮件。

能从服务器删除邮件,但在电脑上保留一份吗?

可以:先把它移到存储在电脑上的邮箱。在 Mac 上的“邮件”中,选择 Mailbox(邮箱)> New Mailbox(新建邮箱),并把 Location(位置)设为 On My Mac(我的 Mac 上);Apple 表示,这些邮箱只存储在那台 Mac 上。Thunderbird 的 Local Folders(本地文件夹)也是同样的道理。删除服务器上的副本后,那台电脑上的就是唯一一份,所以要做好备份。

从 App 中移除账户会删除我的邮件吗?

IMAP 不会。Apple 的 Mac“邮件”使用手册指出,该账户的邮件会从你的 Mac 上移除,而“邮件的副本仍保留在该账户的邮件服务器上”。使用 POP 的话,请先备份:移除账户会从 Mac 上删除已下载的邮件,只有服务器上仍保存的邮件会留下来。

文章

关于邮件,多懂一点。

全部文章

你的邮箱,更由你做主。

下载 CatchNone

适用于 iPhone、iPad 和 Mac