13.4.11 上传消息
要向邮箱增加一个新消息,需要构造一个Message实例,并把它传递到append()方法,同时提供消息的时间戳。
import imaplib
import time
import email.message
import imaplib_connect
new_message = email.message.Message()
new_message.set_unixfrom('pymotw')
new_message['Subject'] = 'subject goes here'
new_message['From'] = 'pymotw@example.com'
new_message['To'] = 'example@example.com'
new_message.set_payload('This is the body of the message.\n')
print(new_message)
with imaplib_connect.open_connection() as c:
c.append('INBOX','',
imaplib.Time2Internaldate(time.time()),
str(new_message).encode('utf-8'))
# Show the headers for all messages in the mailbox.
c.select('INBOX')
typ,[msg_ids] = c.search(None,'ALL')
for num in msg_ids.split():
typ,msg_data = c.fetch(num,'(BODY.PEEK[HEADER])')
for response_part in msg_data:
if isinstance(response_part,tuple):
print('\n{}'.format(num))
print(response_part[1])
这个例子中使用的消息内容(payload)是一个简单的纯文本email体。Message还支持MIME编码的多部分消息。