首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我怎样才能使这段gmail阅读代码适应python3呢?(来自python)

我怎样才能使这段gmail阅读代码适应python3呢?(来自python)
EN

Stack Overflow用户
提问于 2017-08-21 11:18:21
回答 1查看 106关注 0票数 0

下面的代码可以在python2中读取gmail收件箱。但是,即使我用括号括起了需要打印的内容,它也不能在python3中运行。

代码语言:javascript
复制
import smtplib
import time
import imaplib
import email

FROM_EMAIL  = "email"
FROM_PWD    = "pass"
SMTP_SERVER = "imap.gmail.com"
SMTP_PORT   = 993

mail = imaplib.IMAP4_SSL(SMTP_SERVER)
mail.login(FROM_EMAIL,FROM_PWD)
mail.select('inbox')

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

id_list = mail_ids.split()   
first_email_id = int(id_list[0])
latest_email_id = int(id_list[-1])


for i in range(latest_email_id,first_email_id, -1):
    typ, data = mail.fetch(i, '(RFC822)' )

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

它会给我一个错误:

代码语言:javascript
复制
    data = data + b' ' + arg                                                                  
  TypeError: can't concat bytes to int  
EN

回答 1

Stack Overflow用户

发布于 2018-06-05 01:50:41

有两个地方需要改变:

  1. typ, data = mail.fetch(str(i), '(RFC822)' )
  2. msg = email.message_from_string(response[1].decode())

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45788873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档