Skip to content

Files

Latest commit

9044e33 · Nov 21, 2019

History

History
77 lines (50 loc) · 1.83 KB

78.md

File metadata and controls

77 lines (50 loc) · 1.83 KB

读取电子邮件,pop3

原文: https://pythonspot.com/read-email-pop3/

在本教程中,您将学习如何使用poplib模块来接收电子邮件。 邮件服务器需要支持 pop3,但是大多数邮件服务器都支持。邮局协议(POP3)仅用于接收邮件,发送时需要 SMTP 协议。

pop3-email-server

简化邮件服务器

元数据

每封电子邮件将包含许多变量,但是这些是最重要的变量:

特征 描述
消息 ID 唯一标识符
电子邮件来自哪里?
电子邮件发送到哪里了?
日期 日期
主题 电子邮件主题。

读取电子邮件示例

您可以使用邮局协议(协议)直接从邮件服务器请求消息。您不必担心内部协议,因为您可以使用poplib模块。

使用以下方法连接服务器并进行身份验证:

# connect to server
server = poplib.POP3(SERVER)

# login
server.user(USER)
server.pass_(PASSWORD)

下面的程序从服务器获取 10 封电子邮件,包括邮件头

import poplib
import string, random
import StringIO, rfc822

def readMail():
    SERVER = "YOUR MAIL SERVER"
    USER = "YOUR USERNAME [email protected]COM"
    PASSWORD = "YOUR PASSWORD"

    # connect to server
    server = poplib.POP3(SERVER)

    # login
    server.user(USER)
    server.pass_(PASSWORD)

    # list items on server
    resp, items, octets = server.list()

    for i in range(0,10):
        id, size = string.split(items[i])
        resp, text, octets = server.retr(id)

        text = string.join(text, "\n")
        file = StringIO.StringIO(text)

        message = rfc822.Message(file)

        for k, v in message.items():
            print k, "=", v

readMail()