这似乎很容易
From
To
Subject
Run Code Online (Sandbox Code Playgroud)
等等
import email
b = email.message_from_string(a)
bbb = b['from']
ccc = b['to']
Run Code Online (Sandbox Code Playgroud)
假设这"a"是原始电子邮件字符串,看起来像这样.
a = """From root@a1.local.tld Thu Jul 25 19:28:59 2013
Received: from a1.local.tld (localhost [127.0.0.1])
by a1.local.tld (8.14.4/8.14.4) with ESMTP id r6Q2SxeQ003866
for <ooo@a1.local.tld>; Thu, 25 Jul 2013 19:28:59 -0700
Received: (from root@localhost)
by a1.local.tld (8.14.4/8.14.4/Submit) id r6Q2Sxbh003865;
Thu, 25 Jul 2013 19:28:59 -0700
From: root@a1.local.tld
Subject: oooooooooooooooo
To: ooo@a1.local.tld
Cc:
X-Originating-IP: 192.168.15.127
X-Mailer: Webmin 1.420
Message-Id: <1374805739.3861@a1>
Date: Thu, 25 Jul …Run Code Online (Sandbox Code Playgroud) 我正在尝试阅读来自 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 : ' + …Run Code Online (Sandbox Code Playgroud) 这是我到目前为止的代码:
import email, imaplib
user = 'some username'
pwd = 'some password'
m = imaplib.IMAP4_SSL("imap.gmail.com")
m.login(user, pwd)
m.select("[Gmail]/All Mail")
resp, data = m.fetch(1, "(RFC822)")
email_body = data[0][1]
mail = email.message_from_string(email_body)
print mail
Run Code Online (Sandbox Code Playgroud)
我目前收到的电子邮件有一堆奇怪的格式.我希望收到电子邮件正文作为纯文本字符串.
前段时间,我在Python上编写了一个处理电子邮件消息的程序,总有一件事就是知道电子邮件是否是"多部分".
经过一些研究,我知道它与包含HTML或附件等的电子邮件有关......但我并不是真的理解它.
1.当我必须从原始电子邮件中保存附件时
我刚刚在互联网上发现了这一点(可能在这里 - 很抱歉没有记下编写它的人,但我似乎无法再找到他了:/)并将其粘贴在我的代码中
def downloadAttachments(emailMsg, pathToSaveFile):
"""
Save Attachments to pathToSaveFile (Example: pathToSaveFile = "C:\\Program Files\\")
"""
att_path_list = []
for part in emailMsg.walk():
# multipart are just containers, so we skip them
if part.get_content_maintype() == 'multipart':
continue
# is this part an attachment ?
if part.get('Content-Disposition') is None:
continue
filename = part.get_filename()
att_path = os.path.join(pathToSaveFile, filename)
#Check if its already there
if not os.path.isfile(att_path) :
# finally write the stuff
fp = open(att_path, 'wb') …Run Code Online (Sandbox Code Playgroud)