gpt4 book ai didi

python - 使用python脚本读取未读邮件

转载 作者:行者123 更新时间:2023-11-28 22:13:37 24 4
gpt4 key购买 nike

我正在尝试阅读 gmail 帐户中所有未读的电子邮件。上面的代码能够建立连接,但无法获取电子邮件。

我想打印每封邮件的内容。

我收到错误消息,因为无法将 int 连接到字节。

代码:

import smtplib
import time
import imaplib
import email

def read_email_from_gmail():
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('my_mail','my_pwd')
mail.select('inbox')

result, 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):
result, 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')



print(read_email_from_gmail())

错误:

Traceback (most recent call last):
File "C:/Users/devda/Desktop/Internship/access_email.py", line 32, in <module>
print(read_email_from_gmail())
File "C:/Users/devda/Desktop/Internship/access_email.py", line 20, in read_email_from_gmail
result, data = mail.fetch(i, '(RFC822)' )
File "C:\Users\devda\AppData\Local\Programs\Python\Python36\lib\imaplib.py", line 529, in fetch
typ, dat = self._simple_command(name, message_set, message_parts)
File "C:\Users\devda\AppData\Local\Programs\Python\Python36\lib\imaplib.py", line 1191, in _simple_command
return self._command_complete(name, self._command(name, *args))
File "C:\Users\devda\AppData\Local\Programs\Python\Python36\lib\imaplib.py", line 956, in _command
data = data + b' ' + arg
TypeError: can't concat int to bytes
>>>

我遵循了 here 中的教程

我想做的是从图像中显示的电子邮件中提取内容 Email

最佳答案

为了让它在 Python 3.5.1 上运行,我不得不对您的代码进行一些更改。我在下面嵌入了评论。

# no need to import smtplib for this code
# no need to import time for this code
import imaplib
import email


def read_email_from_gmail():
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('my_mail','my_pwd')
mail.select('inbox')

result, 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):
# need str(i)
result, data = mail.fetch(str(i), '(RFC822)' )

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

# nothing to print here
read_email_from_gmail()

也许可以向该博客的作者提交错误报告。

关于python - 使用python脚本读取未读邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53827488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com