Ive得到它,连接到出站交换需要连接像这样:
import smtplib
url = YOUR_EXCHANGE_SERVER
conn = smtplib.SMTP(url,587)
conn.starttls()
user,password = (EXCHANGE_USER,EXCHANGE_PASSWORD)
conn.login(user,password)
现在你可以给像一个正常的连接
message = 'From: FROMADDR\nTo: TOADDRLIST\nSubject: Your subject\n\n{}'
from, to = fromaddr,toaddrs
txt = 'This is my message'
conn.sendmail(fromaddr,toaddrs,msg.format(txt))
从您的收件箱中的一点点不同
import imaplib
url = YOUR_EXCHANGE_URL
conn = imaplib.IMAP4_SSL(url,993)
user,password = (EXCHANGE_USER,EXCHANGE_PASSWORD)
conn.login(user,password)
conn.select('INBOX')
results,data = conn.search(None,'ALL')
msg_ids = data[0]
msg_id_list = msg_ids.split()
这给你消息ID的” s表示你可以用它来获得你的电子邮件列表,收邮件
latest_email_id = msg_id_list[-1]
result,data = conn.fetch(latest_email_id,"(RFC822)")
raw_email = data[0][1]
现在raw_email是你的电子邮件消息,但它不是非常漂亮,如果你想解析它是这样做的
from email.parser import Parser
p = Parser()
msg = p.parsestr(raw_email)
现在你可以做
msg.get('From')
msg.get('Subject')
或内容
msg.get_payload()
,但如果你将需要做更多一点处理的多部分消息,luckly递归的解决方案是为这个完美的情况
def process_multipart_message(message):
rtn = ''
if message.is_multipart():
for m in message.get_payload():
rtn += process_multipart_message(m)
else:
rtn += message.get_payload()
return rtn
现在
msg_contant = process_multipart_message(msg)
每次都会给你全部的信息。
启用IMAP不是一个选项(如果是的话,整个事情将变得微不足道,但可悲的是它不是)。 – 2008-11-13 22:32:41
是的,这是我的想法,但它值得一试。 – 2008-11-13 22:40:00
我应该首先把它放在问题中(现在编辑)。感谢:) – 2008-11-13 22:50:41