精华内容
下载资源
问答
  • smtp协议与pop3协议

    千次阅读 2015-02-08 16:21:47
    最近一直想不通,SMTP协议和POP3协议各自的作用,在网上找了一个自以为最直观的。  SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的...

    最近一直想不通,SMTP协议和POP3协议各自的作用,在网上找了一个自以为最直观的。

        SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件

        POP3协议是一个简单的协议,它用于从远程邮件服务器上获取邮件,帮助用户登录到邮件服务器上、取邮件、删除邮件等。

            一般来说,用户需登录到邮件服务器上,使用系统提供的用户代理程序(如:Unix系统中的mail命令)才能发送和接收邮件。但是很多单位,邮件服务器只有一个,而决大多数用户都使用的PC机,如果大家都登录到邮件服务器上收发邮件,是非常不方便的,也不利于管理。而pop3(邮局协议)就是解决这个问题的。

        SMPT和POP3协议的工作过程如下图所示。

        上面的图可以很明白的显示出两个协议各自的职责范围。

    个人理解:

        真正的发送邮件只能从smtp服务器(这里可以理解服务是一个硬件设备)发送出去,但是大多数人都不可能直接的接触服务器,所以pop3(邮局协议)就解决了这个问题,它帮助用户登录到邮件服务器上、取邮件、删除邮件等。如同你不需要去邮局去寄信和取信,只要通过邮递员就好啦!

        而SMTP相当于邮局与邮局之间的传输模式。

    smtp服务器或pop3服务器都是指的是软件,按照stmp协议发送邮件的软件都可以叫做smtp服务器,按照pop3协议提供pop3服务的软件都可以叫做pop3服务器

    装有smtp服务器的机子都可以叫做smtp服务器(这里指硬件),即发送邮件服务器;

    装有pop3服务器的机子都可以叫做pop3服务器,即发送邮件服务器。

    所以smtp服务器和pop3服务器既可以是同一台机子,也可以是不同的机子。

    展开全文
  • POP3协议详解

    千次阅读 2019-06-10 22:11:42
    POP3协议详解 POP3是一个非常简单的邮件访问协议。 因为这个协议非常简单,所以这个协议的功能很少。 什么时候会用到这个协议呢? POP3 begins when the user agent (the client) opens a TCP connection to the ...

    POP3协议详解


    POP3是一个非常简单的 邮件访问协议。

    Post Office Protocol version 3 (POP3) is a standard mail protocol used to receive emails from a remote server to a local email client.

    因为这个协议非常简单,所以这个协议的功能很少。

    什么时候会用到这个协议呢?
    POP3 begins when the user agent (the client) opens a TCP connection to the mail server (the server) on port 110.

    当TCP连接建立好之后,POP3 progresses through 3 phases:

    • authorization
    • transaction
    • update

    一脸懵逼

    authorization

    the user agent sends a username and a password (in the clear,明文)to authenticate the server.

    在这个阶段有两个主要的命令:

    • user <username>
    • pass <password>

    为了搞清楚这两个命令,我们建议你最好使用Telnet直接登录到a POP3 server, using port 110, and issue these commands.

    说实话,我对telnet不太了解,我只知道可以使用命令敲击。然而我的电脑是mac的,telnet不知道什么时候已经装好了。先不研究telnet吧。

    假定 mailServer 是你的邮件服务器的名称,You will see something like:

    telnet mailServer 110
    +OK POP3 server ready
    user bob
    +OK
    pass hungry
    +OK user successfully logged on
    

    If you misspell a command, the POP3 server will reply will an -ERR message.

    所以mailServer必须要是一个POP3 server吗?

    下面举个实在点的例子吧。武大人都有武大邮箱,我们就拿武大邮箱来举个例子吧。
    命令不多,我就直接截图了。
    在这里插入图片描述
    可以看到在+OKd的后面写了个397 messages,
    这说明了在我的服务器的收件箱中一共有397条消息。
    真的吗,呵呵
    在这里插入图片描述
    确实,分毫不差

    transaction

    the user agent retrieves messages; also during the phase, the user agent can mark messages for deletion, remove deletion marks and obtain mail statistics.

    In a POP3 transaction, the user agent issues commands, and the server responds to each command with a reply. 有两种可能的回复:

    • +OK (sometimes followed by server-to-client data),used by the server to indicate that the previous command was fine.
    • -ERR, used by the server to indicate that something was wrong with the previous command.

    A user agent using POP3 can often be configured (by the user) to “download and delete” or “download and keep”. The sequence of commands issued by a POP3 user agent depends on which of these two modes the user agent is operating in.

    • In the download-and-delete mode, the user agent will issue the
      • list
      • retr
      • dele
        commands.

    As an example, suppose the user has 2 messages in his or her mailbox.

    In the dialogue below, C: (standing for client) is the user agent and S: (standing for server) is the mail server. The transaction will look something like:

    C: list
    S: 1 498
    S: 2 912
    S: .
    C: retr 1
    S: (blah blah ...)
    S: .......................
    S: .............blah)
    S: .
    C: dele 1
    C: retr 2
    S: (blah blah ...)
    S: ...................
    S: ...........blah)
    S: .
    C: dele 2
    C: quit
    S: +OK POP3 server signing off
    

    上面这一连串命令都是在你本地电脑的命令行中敲的。
    这一连串命令是什么意思呢?
    The user agent first asks the mail server to list the size of each of the stored messages.
    The user agent then retrieves and deletes each message from the server.
    注意,这个user agent仅使用了4个命令。

    • list
    • retr
    • dele
    • quit

    这些命令的语法is defined in RFC 1939.
    After processing the quit command, the POP3 server enters the update phase and removes messages 1 and 2 from the mailbox.

    也就是说只要在最后执行quit命令之后,才会真正的删除,并不是我一旦执行dele命令,就会进行更新的。

    使用list命令查看每一条消息的大小
    在这里插入图片描述
    在这里插入图片描述
    当list不加任何参数的时候,就是默认列出所有邮件的大小。
    当我们指定邮件的编号时,就可以列出指定邮件的大小:
    在这里插入图片描述
    使用retr命令获取第1条消息
    在这里插入图片描述
    通过武大邮箱看一看第一条消息是什么样的呢?
    在这里插入图片描述
    大体可以看出,获取的是一样的消息。

    我突然想起来,当年屈道涵学长是不是就是这样把我们的作业邮件搞下来的。

    download-and-delete

    A problem with this download-and-delete mode is that the recipient, Bob可能是一个到处跑的产品经理, may want to access his mail messages from multiple machines. 举个例子, his office PC, his home PC, and his portable computer.

    The download-and-delete mode partitions Bob’s mail messages over these 3 machines: In particular, If Bob first reads a message on his office PC, he will not be able to reread the message from his portable PC at home later in the evening.

    download-and-keep

    In the download and keep mode, the user agent leaves the messages on the mail server after downloading them. In this case, Bob can reread messages from different machines; he can access a message from work and access it again later in the week from home.

    update

    the update phase occurs after the client has issued the quit command, ending the POP3 session; at this time, the mail server deletes the messages that were marked for deletion.

    During a POP3 session between a user agent and the mail server, the POP3 server maintains some state information; In particular, it keeps track of which user messages have been marked deleted.

    However, the POP3 server does not carry state information across POP3 sessions. The lack of state information across sessions greatly simplifies the implementation of a POP3 server.

    至此,我已经讲解完毕了POP3协议提供的一些常用服务。有疑问欢迎留言呀!

    展开全文
  • pop协议指令

    千次阅读 2012-08-23 10:51:25
    网络邮件收取使用的是Pop3协议,了解Pop3协议有助于我们加深对邮件系统的理解。而且使用Pop3协议你还可以直接telnet 到邮件服务器上去收信。  一般telnet Pop3 Server 110后就可以用这些命令了,大小写不敏感...
    网络邮件收取使用的是Pop3协议,了解Pop3协议有助于我们加深对邮件系统的理解。而且使用Pop3协议你还可以直接telnet 到邮件服务器上去收信。 

      一般telnet Pop3 Server 110后就可以用这些命令了,大小写不敏感, 不包括口令本身,注意不要让口令回显,等验证通过后再允许回显好了。

      user username 用户认可

      pass password 认可 执行成功则状态转换

      apop name,digest 认可一种安全传输口令的办法,执行成功导致状态转换,请参见RFC 1321 。

      stat 处理请求server回送邮箱统计资料,如邮件数、 邮件总字节数

      uidl n 处理 server返回用于该指定邮件的唯一标识, 如果没有指定,返回所有的。

      list n 处理 server返回指定邮件的大小等

      retr n 处理 server返回邮件的全部文本

      dele n 处理 server标记删除,quit命令执行时才真正删除

      rset 处理撤消所有的dele命令

      top n,m 处理 返回n号邮件的前m行内容,m必须是自然数

      noop 处理 server返回一个肯定的响应

      quit client 希望结束会话。如果server处于"处理" 状态,则现在进入"更新"状态,删除那些标记成删除的邮件。如果server处于"认可"状态, 则结束会话时server不进入"更新"状态 。

      使用telnet 的一个完整的收信例子如下:

      telnet pop3Server 110
      user username
      pass ****
      stat
      list
      retr 1
      retr 2
      ...
      dele 1
      dele 2
      ...
      quit

    展开全文
  • 基于POP3协议收取邮件

    千次阅读 2018-12-12 09:43:14
    收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3。 Python内置一个poplib模块,实现了POP3协议,可以直接用来收邮件。 注意到POP3协议收取的不是一个已经可以阅读的邮件本身,而是邮件的原始文本,这和SMTP...

    收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3

    Python内置一个poplib模块,实现了POP3协议,可以直接用来收邮件。

    注意到POP3协议收取的不是一个已经可以阅读的邮件本身,而是邮件的原始文本,这和SMTP协议很像,SMTP发送的也是经过编码后的一大段文本。

    要把POP3收取的文本变成可以阅读的邮件,还需要用email模块提供的各种类来解析原始文本,变成可阅读的邮件对象。

    所以,收取邮件分两步:

    第一步:用poplib把邮件的原始文本下载到本地;

    第二部:用email解析原始文本,还原为邮件对象。

    # -*- coding: utf-8 -*-
    """
    Created on Wed Dec 12 08:47:07 2018
    
    @author: yufeng
    """
    
    import poplib 
    from email.parser import Parser
    from email.header import decode_header
    from email.utils import parseaddr
    
    # 输入邮件地址, 密码 和 POP3服务器的地址
    email = input('Email: ')
    password = input('Password: ')
    pop3_server = "pop3.sina.com"
    
    def guess_charset(msg):
        charset = msg.get_charset()
        if charset is None:
            content_type = msg.get('Content-Type', '').lower()
            pos = content_type.find('charset=')
            if pos >= 0:
                charset = content_type[pos + 8:].strip()
        return charset
    
    def decode_str(s):
        value, charset = decode_header(s)[0]
        if charset:
            value = value.decode(charset)
        return value
    
    def print_info(msg, indent=0):
        if indent == 0:
            for header in ['From', 'To', 'Subject']:
                value = msg.get(header, '')
                if value:
                    if header=='Subject':
                        value = decode_str(value)
                    else:
                        hdr, addr = parseaddr(value)
                        name = decode_str(hdr)
                        value = u'%s <%s>' % (name, addr)
                print('%s%s: %s' % ('  ' * indent, header, value))
        if (msg.is_multipart()):
            parts = msg.get_payload()
            for n, part in enumerate(parts):
                print('%spart %s' % ('  ' * indent, n))
                print('%s--------------------' % ('  ' * indent))
                print_info(part, indent + 1)
        else:
            content_type = msg.get_content_type()
            if content_type=='text/plain' or content_type=='text/html':
                content = msg.get_payload(decode=True)
                charset = guess_charset(msg)
                if charset:
                    content = content.decode(charset)
                print('%sText: %s' % ('  ' * indent, content + '...'))
            else:
                print('%sAttachment: %s' % ('  ' * indent, content_type))
    
    # 连接到POP3服务器
    server = poplib.POP3(pop3_server)
    # 可以打开或关闭调试信息
    server.set_debuglevel(1)
    # 打印POP3服务器的欢迎文字
    print(server.getwelcome().decode('utf-8'))
    
    # 身份验证
    server.user(email)
    server.pass_(password)
    
    # stat()返回邮件数量和占用空间
    print("Message: %s. Size: %s" % server.stat())
    # list()返回所有邮件的编号
    resp, mails, octets = server.list()
    # 可以查看返回的列表类似[b'1 82923', b'2 2184', ...]
    print(mails)
    
    # 获取最新一封邮件, 注意索引号从1开始:
    index = len(mails)
    resp, lines, octets = server.retr(index)
    
    # lines存储了邮件的原始文本的每一行,
    # 可以获得整个邮件的原始文本:
    msg_content = b'\r\n'.join(lines).decode('utf-8')
    # 稍后解析出邮件:
    msg = Parser().parsestr(msg_content)
    print_info(msg)
    # 可以根据邮件索引号直接从服务器删除邮件:
    # server.dele(index)
    # 关闭连接:
    server.quit()
    

    先使用之前的SMTP协议发送一封测试邮件,然后运行代码接收邮件

    使用POP3接收邮件

    在这里插入图片描述

    +OK sina pop3 server ready
    *cmd* 'USER xxxx@sina.com'
    *cmd* 'PASS xxxxxx'
    *cmd* 'STAT'
    *stat* [b'+OK', b'9', b'144135']
    Message: 9. Size: 144135
    *cmd* 'LIST'
    [b'1 10594', b'2 2686', b'3 1077', b'4 1078', b'5 1168', b'6 1094', b'7 42119', b'8 42184', b'9 42135']
    *cmd* 'RETR 9'
    From: test <xxx@sina.com>
    To: 接收邮件测试账号 <xxx@sina.com>
    Subject: 基于SMTP协议发送邮件的测试
    part 0
    --------------------
      Text: Python使用POP3收取邮件...
    part 1
    --------------------
      Attachment: image/png
    *cmd* 'QUIT'
    
    展开全文
  • POP3协议分析

    千次阅读 2012-08-20 14:25:46
    POP3协议分析 第1章. POP3概述 POP3全称为Post Office Protocol version3,即邮局协议第3版。它被用户代理用来邮件服务器取得邮件。POP3采用的也是C/S通信模型,对应的RFC文档为RFC1939。该协议非常简单,所以...
  • SMTP和POP协议

    2020-05-29 23:06:13
    POP全称为Post Office Protocol version,即邮局协议。它被用户代理用来邮件服务器取得邮件。 SMTP 邮件传输过程 邮件传送主要包括3个阶段: 建立连接 、 邮件传送 和 终止连接 。 邮件收取过程 建立和pop3邮件...
  • pop协议邮件传送

    2013-06-05 18:06:21
    这是一份文档 ,但是文档里面详细地说明了 每一个步骤 只要一步一步来 功能就可以实现
  • PHP使用POP3协议类收取邮件

    千次阅读 2018-08-22 09:20:13
    此测试代码需要到服务器邮箱开通pop协议,获取客户端授权密码(详见163内部获取): &amp;lt;?php //此处查看链接状态 header(&quot;Content-type:text/html;charset=utf-8&quot;); var_dump...
  • POP3协议简介

    千次阅读 2005-03-18 22:08:00
    由于要些一个POP3邮箱的收信程序,所以看了一下POP3协议,将其中的核心部分翻译了一下。POP3协议中的命令包含不区分大小写的关键字并可能跟随1个或多个参数。所有命令以CRLF结尾。关键字和参数包含可打印的ASCII字符...
  • 一个POP3协议 MFC程序

    2009-04-23 17:02:44
    一个POP3协议 MFC程序。 对初学者有用
  • VC++分析数据包实现POP3协议分析

    千次阅读 2012-11-07 18:31:03
    POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到...
  • 邮件接收POP3协议简单介绍

    千次阅读 2016-04-10 02:20:22
    常用的电子邮件协议有SMTP、POP3、IMAP这三种 其中电子邮件的发送协议是SMTP, 邮件的接收协议主要有2种 IMAP和POP3,本文主要介绍POP3协议 POP3(Post Office Protocol 3)邮局协议的第3个版本,是因特网电子...
  • 网络编程之POP3协议邮箱收信

    万次阅读 2017-11-01 14:25:37
    POP3例子编程软件:VS2015 语言:C/C++ 这里主要讲解POP3邮箱收信 ...SMTP邮箱发信讲解(QQ邮箱为例):http://blog.csdn.net/aaron133/article/details/78363844POP3协议的概述:一、简述:1、功...
  • C# 基于POP协议的邮件接收程序 基于POP协议的C#邮件接收程序,能够接当然也就能够发,压缩包内含所需DLL控件的源代码,编译运行邮件客户端前,请先运行控件源文件,编译拷贝至邮件程序的目录中,程序界面写的有点...
  • python中使用POP协议

    千次阅读 2014-02-23 16:07:57
    POP(Post Office Post),邮局协议,采用C/S工作模式,读取电子邮件的过程是先利用DNS协议解析POP服务器的IP地址,并连接服务器,使用USER命令将密码传入POP服务器,使用PASS命令将密码传入POP服务器,这个过程完成...
  • Email模块中的POP3协议

    千次阅读 2013-09-27 11:36:28
    Email模块中的POP3协议 一、概述 Email协议包括两部分,一部分是发送Email的协议,一般是smtp协议;另一部分是接收Email的协议,常见的有POP3协议和imap协议。现讨论接收Email的POP3协议。 POP3 (Post Office ...
  • 邮箱系统原理——POP3协议和IMAP协议

    千次阅读 2012-09-15 13:19:25
    POP3协议 POP3协议采用的网络监听端口号默认为110 下面列举POP3命令及其说明(代表空格,代表回车和换行) userusername:该命令是POP3客户端程序与POP3邮件服务器简历连接后通常发送的第一条命令 passpassword...
  • wireshark抓包分析POP3协议

    千次阅读 2020-08-31 17:15:07
    一、工具 wireshark 链接:https://pan.baidu.com/s/1uOAGBrwbsmzFXLnpw6EHaA 提取码:vs59 pop3.pcap 链接:...提取码:li1f ...其中183.3.225.42是qq的pop服务器的ip ...
  • Wireshark分析SMTP、POP3协议

    千次阅读 2020-06-10 18:24:31
    在本地登录用foxmail登录qq邮箱和163邮箱,用qq邮箱发送邮件给163邮箱,并抓取smtp和pop3协议的数据包: SMTP协议数据包如下: 状态字220代表连接SMTP服务器成功 状态字250表示与服务器握手成功 用户登录...
  • 内容索引:C#源码,网络相关,邮件 基于POP协议的C#邮件接收程序,能够接当然也就能够发,压缩包内含所需DLL控件的源代码,编译运行邮件客户端前,请先运行控件源文件,编译拷贝至邮件程序的目录中,程序界面写的有点...
  • 详细解释电子邮件中POP3协议及最小化实现 1. 什么是POP3 POP3的英文全称Post OfficeProtocol Version 3,POP3协议本质上是一种消息传递协议 主要用来在支持POP3客户端和POP3邮件服务器端通信,基于TCP协议之上的...
  • 以263邮箱为例 1.POP3接收邮件协议(邮局协议),端口:110 SLL加密类型端口:995。较为常见的客户端如outlook、foxmail都可以使用,使用客户端如果设置了接收邮件后同时删除服务端的邮件那么将会删除服务端上的邮件。...
  • 基于C# POP3邮件收件服务器 引用了OpenPOP 简单的使用,易于理解!
  • POP3协议规范 对于在网络上的比较小的结点,支持消息传输系统(mts)是不实际的。例如,一台工作站可能不具有充足的资源允许smtp服务器和相当的本地邮件传送系统保持序驻留,并持续运行。同样的,将一台个人计算机长...
  • IMAP与POP协议的区别

    千次阅读 2019-04-25 15:44:00
    POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时...
  • APOP协议,NNTP协议及其它

    千次阅读 2008-10-22 20:35:00
    APOP表示authentication post office protocol,可以说是POP3协议的加强版。 NNTP全称network news transfer protocol,网络新闻传输协议。 APOP的资料详见:http://en.wikipedia.org/wiki/Post_Office_Protocol,...
  • POP3协议简单介绍

    千次阅读 2011-11-28 10:29:52
    在Internet,POP3(Post Office Protocol 3)协议通常被用来接收电子邮件。这个协议很容易学,因为它只包含12个命令(其中有3个你完全可以忽略它们的存在)。这些命令被客户端计算机用来发送 给远程服务器。反过来,...
  • POP3协议小贴

    千次阅读 2008-07-21 20:20:00
    POP3 协议: 采用对等的会话方式完成邮件的收取。过程为交互式的请求应答模式。 客户端首先要和POP3服务器110号端口进行连接。然后使用标准命令进行对话 //-----------------------------------标准命令 USER ...
  • Pop3协议的原理

    千次阅读 2005-12-24 00:24:00
    (5) 在POP3协议中有三种状态,认可状态,处理状态,和更新状态。  当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可状态转入处理状态,在完成相应的操作后客户机发出QUIT命令,则进入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 94,778
精华内容 37,911
关键字:

pop协议作用