V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
programV2
V2EX  ›  程序员

POP3 协议在邮件服务器的操作会反馈到 pop3 客户端上吗? 如标记已读等

  •  
  •   programV2 · 2020-03-06 21:49:31 +08:00 · 2132 次点击
    这是一个创建于 1714 天前的主题,其中的信息可能已经有所发展或是发生改变。
    POP3 协议允许电子邮件客户端下载服务器上的邮件, 在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上, 但是反过来呢? 在邮件服务器的操作会反馈到 pop3 客户端上吗? 如标记已读等
    谢谢各位 V 友指点!
    8 条回复    2020-03-07 00:11:12 +08:00
    programV2
        1
    programV2  
    OP
       2020-03-06 22:20:59 +08:00
    自己 up 下 , 查了一晚上的资料, 我的理解 是 pop3 用户是以客户端为中心管理邮件,imap 是以服务器为中心管理邮件。在邮件服务器的一些操作(如标记已读 不 会反馈到 pop3 客户端上
    programV2
        2
    programV2  
    OP
       2020-03-06 22:21:38 +08:00
    如有出入 希望大佬指出 谢谢
    imdong
        3
    imdong  
       2020-03-06 22:22:22 +08:00
    如果没记错互不影响。
    已经下载到本地的,不会被更新。
    未被下载的,可能依然可以下载,但是服务器也可能不返回邮件。

    因为 POP3 传输邮件 不传输已读状态,只有登录,列表,下载,删除。
    programV2
        4
    programV2  
    OP
       2020-03-06 23:04:50 +08:00
    @imdong 谢谢分享! 我刚才查了 POP3 的一些获取服务器信息的命令 , 理论上 POP3 下载 邮件不是通过查看服务器上邮件状态是已读还是未读来匹配决定要不要传输, 而是通过服务器邮件的 唯一标识符 uid 去 localMessage 里面匹配来决定哪些邮件是要下载的, 如果本地 uid 已经存在了,则不再去服务器上同步下载, 不知道我理解是对不对? 谢谢指点!

    另 如果 POP3 传输邮件不传输已读状态, 那么假如我把服务器上所有邮件全标记为已读, 在电脑上重新配置 Outlook 客户端、或在其他终端(电脑、手机、pad 等)上新配置邮箱客户端 , 如果选择 POP3 协议,那么理论上就不会把任何邮件从服务器上下载下来了, 但实际却不是如此
    xy90321
        5
    xy90321  
       2020-03-06 23:16:28 +08:00 via iPhone
    @programV2
    你选 imap 也一样会把已读邮件下载下来,只是下载下来就已经是已读状态而已。
    pop3 不同步邮件状态,你哪怕把服务器上所有邮件都设置成已读,在一个全新的 pop3 客户端上下载回来的也都是未读邮件。
    邮件状态仅在 pop3 客户端本地管理。
    programV2
        6
    programV2  
    OP
       2020-03-06 23:48:10 +08:00
    @xy90321 谢谢分享! 我刚才查了 POP3 的一些获取服务器信息的命令 , 理论上 POP3 下载 邮件不是通过查看服务器上邮件状态是已读还是未读来匹配决定要不要传输, 而是通过服务器邮件的 唯一标识符 uid 去 localMessage 里面匹配来决定哪些邮件是要下载的, 如果本地 uid 已经存在了,则不再去服务器上同步下载, pop3 客户端和服务器的邮件状态互不影响, 不知道我理解 对不对? 谢谢指点!
    leido
        7
    leido  
       2020-03-07 00:03:01 +08:00 via Android
    pop 客户端默认不会在服务器保留已下载邮件,需要设置,这点最坑,好在已经改用 imap 多年
    imdong
        8
    imdong  
       2020-03-07 00:11:12 +08:00
    POP3 原本是:服务器提供未下载的邮件列表,你选择下载,你下载后服务器会删除对应的邮件。

    你本地已读不会影响服务器,服务器是否已读不会影响客户端。

    但是,现在服务器普遍提供“禁止客户端删除邮件”功能,

    所以,客户端实现的是,获取邮件列表,本地不存在的则下载。

    但不排除服务器会把已经在服务器上已读的邮件从邮件列表中删除(当然,我没见过)

    但是有一些服务器只会提供最近的一定数量的邮件,更早的不提供(这个我见过 一般是 150 封)


    所以, 实际上, 大部分情况是:

    你在 A 机器上下载了邮件后,在 B 机器重新配置,还是会下载所有的邮件.

    不管你 A 机器是否已读,服务器是否已读.B 机器都会尝试加载所有能获取到的邮件

    只要你没有做删除操作.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5891 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:14 · PVG 10:14 · LAX 18:14 · JFK 21:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.