簡體   English   中英

Python3從gmail讀取正文

[英]Python3 reading body text from gmail

我正在嘗試使用python3通過電子郵件進行解析,並在字符串列表中輸出正文的內容。 主體的內容始終遵循以下模式:字符串\\ n字符串\\ n字符串\\ n等。

我目前得到的錯誤是initial_value must be str or None, not bytes

import imaplib
import email
import time
import smtplib

from_email = "someemail@gmail.com"
from_pwd = "somepass"
smtp_server = "imap.gmail.com"
smtp_port= 993

def readmail(from_email,from_pwd,smtp_server,smtp_port ):
        try:
                mail = imaplib.IMAP4_SSL(smtp_server)
                mail.login(from_email,from_pwd)
                mail.select('inbox')
                result, data = mail.search(None, 'ALL')
                mail_ids = data[0]
                id_list = mail_ids.split()
                first_email_id =id_list[0]
                latest_email_id = id_list[-1] #most recent email
                result,data = mail.fetch(latest_email_id, "(RFC822)")
                raw_email = data[0][1]

                #read the email 
                email_message = email.message_from_string(raw_email)
                return email_message_instance.get_payload()
        except Exception as e:
                print(e)


print(readmail(from_email,from_pwd,smtp_server,smtp_port))

我知道錯誤在於“ #read the email”注釋之后,因為我能夠打印出raw_email

email.message_from_string()需要字符串參數。 您可以改用email.message_from_bytes()解決此問題。

另外,您可以按以下方式將raw_email轉換為字符串

mail_content = raw_email.decode('utf-8')

並在email.message_from_string()中傳遞mail_content

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM