tldr:有人可以告诉我如何正确格式化这个Python iMAP示例,以便它可以工作吗?
来自 https://docs.python.org/2.4/lib/imap4-example.html
import getpass, imaplib M = imaplib.IMAP4() M.login(getpass.getuser(), getpass.getpass()) M.select() typ, data = M.search(None, 'ALL') for num in data[0].split(): typ, data = M.fetch(num, '(RFC822)') print 'Message %s\n%s\n' % (num, data[0][1]) M.close() M.logout()
假设我的电子邮件是"email@gmail.com",密码是"密码",这应该怎么样?我试过了M.login(getpass.getuser(email@gmail.com), getpass.getpass(password))
,它超时了.在这里完成newb,所以我很可能错过了一些明显的东西(比如先创建一个iMAP对象?不确定).
import imaplib # you want to connect to a server; specify which server server= imaplib.IMAP4_SSL('imap.googlemail.com') # after connecting, tell the server who you are server.login('email@gmail.com', 'password') # this will show you a list of available folders # possibly your Inbox is called INBOX, but check the list of mailboxes code, mailboxen= server.list() print mailboxen # if it's called INBOX, then… server.select("INBOX")
其余的代码似乎是正确的.
这是我用来从我的邮箱中获取logwatch信息的脚本.在LFNW 2008上发表 -
#!/usr/bin/env python ''' Utility to scan my mailbox for new mesages from Logwatch on systems and then grab useful info from the message and output a summary page. by Brian C. Lane''' import os, sys, imaplib, rfc822, re, StringIO server ='mail.brianlane.com' username='yourusername' password='yourpassword' M = imaplib.IMAP4_SSL(server) M.login(username, password) M.select() typ, data = M.search(None, '(UNSEEN SUBJECT "Logwatch")') for num in data[0].split(): typ, data = M.fetch(num, '(RFC822)') # print 'Message %s\n%s\n' % (num, data[0][1]) match = re.search( "^(Users logging in.*?)^\w", data[0][1], re.MULTILINE|re.DOTALL ) if match: file = StringIO.StringIO(data[0][1]) message = rfc822.Message(file) print message['from'] print match.group(1).strip() print '----' M.close() M.logout()