为什么发生FETCH命令错误:BAD [b'无法解析命令']失败?

时间:2020-06-07 06:08:16

标签: python imap getaddrinfo

import imaplib
import email
import socket

socket.getaddrinfo('127.0.0.1', 8080)


def read_email_from_gmail():
    try:
        mail = imaplib.IMAP4_SSL('imap.gmail.com', 993)
        mail.login('your email', 'your password')
        mail.select('inbox')

        type, data = mail.search(None, 'ALL')
        mail_ids = data[0]

        id_list = mail_ids.split()

        typ, data = mail.fetch(bytes(str(id_list), 'utf-8'), '(RFC822)')

        for responsepart in data:
            if isinstance(responsepart, tuple):
                msg = email.message_from_string(responsepart[1].decode('utf-8'))
                email_subject = msg['subject']
                email_from = msg['from']
                print('From : ' + email_from + '\n')
                print('Subject : ' + email_subject + '\n')

    except Exception as e:
        print(str(e))


read_email_from_gmail()


输出:FETCH命令错误:错误[b'无法解析命令']

我想使用Python从Gmail接收邮件。有人可以帮我解决我的问题吗?这是什么错误?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您的服务器名称错误。应该是imap.gmail.com

这就是我想出的办法。我搜索了11001和getaddrinfo,得知此错误代码来自Windows,表示找不到主机。

我尝试ping imap.google.com,但主机名无法解析。

我搜索了“ google imap服务器”,并在Google's documentation中找到了另一个主机名。