为什么会出现FETCH命令错误。BAD [b'Could not parse command']失败?

问题描述 投票:0回答:1
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命令错误: BAD [b'Could not parse command'] BAD [b'Could not parse command'] 失败。

我想用Python从Gmail接收邮件。谁能帮帮我,我哪里做错了? 这个错误是什么?

先谢谢你

python imap getaddrinfo
1个回答
0
投票

我想你把服务器的名字搞错了。 我想你把服务器的名字弄错了,应该是 imap.gmail.com.

我是这样想的。 我搜索了11001和getaddrinfo,得知这个错误代码是Windows说找不到主机。

我试着ping了一下 imap.google.com 和主机名无法解析。

我搜索了一下 "google imap服务器",发现一个不同的主机名在 谷歌的文档.

© www.soinside.com 2019 - 2024. All rights reserved.