复制此代码时,出现错误:
连接=无^ IndentationError:应缩进的块
然后,当我缩进代码时,
class FetchEmail(): connection = None error = None mail_server = "imap.gmail.com" username = "dummyoffers@gmail.com" password = "opennepo" self.save_attachment(self, msg, download_folder)
我收到另一个错误:
self.save_attachment(self,msg,download_folder)NameError:未定义名称“ self”
import emailimport imaplibimport osclass FetchEmail():connection = Noneerror = Nonemail_server="host_name"username="outlook_username"password="password"self.save_attachment(self,msg,download_folder)def __init__(self, mail_server, username, password): self.connection = imaplib.IMAP4_SSL(mail_server) self.connection.login(username, password) self.connection.select(readonly=False) # so we can mark mails as readdef close_connection(self): """ Close the connection to the IMAP server """ self.connection.close()def save_attachment(self, msg, download_folder="/tmp"): """ Given a message, save its attachments to the specified download folder (default is /tmp) return: file path to attachment """ att_path = "No attachment found." for part in msg.walk(): if part.get_content_maintype() == 'multipart': continue if part.get('Content-Disposition') is None: continue filename = part.get_filename() att_path = os.path.join(download_folder, filename) if not os.path.isfile(att_path): fp = open(att_path, 'wb') fp.write(part.get_payload(depre=True)) fp.close() return att_pathdef fetch_unread_messages(self): """ Retrieve unread messages """ emails = [] (result, messages) = self.connection.search(None, 'UnSeen') if result == "OK": for message in messages[0].split(' '): try: ret, data = self.connection.fetch(message,'(RFC822)') except: print "No new emails to read." self.close_connection() exit() msg = email.message_from_string(data[0][1]) if isinstance(msg, str) == False: emails.append(msg) response, data = self.connection.store(message, '+FLAGS','\Seen') return emails self.error = "Failed to retreive emails." return emails上面的代码可以让我下载附件,希望对任何人都有帮助。



