class NotesMail(object): """ 发送读取邮件有关的操作 """ def __init__(self, server, file): print('init mail client') # self.session = DispatchEx('Notes.NotesSession') # # self.server = self.session.GetEnvironmentString("MailServer", True) # self.db = self.session.GetDatabase(server, file) # if not self.db.IsOpen: # print('open mail db') # try: # self.db.OPENMAIL # except Exception as e: # print(str(e)) # print( 'could not open database: {}'.format('\mail\张丽华') ) # for notes 8.5 maybe self.session = DispatchEx('Notes.NotesSession') self.server = self.session.GetEnvironmentString("MailServer", True) self.db = self.session.GetDatebase(server, file) self.db.OPENMAIL print("11111111111111111111") print("2222222222222222") print(server) print(file) if not self.db.IsOpen: print("3333333333333333333333") try: self.db.Open() except pywintypes.com_error: print('could not open database: ') def send_mail(self, reciver_list, subject, body=None): doc = self.db.CREATEDOCUMENT doc.sendto = reciver_list doc.Subject = subject if body: doc.Body = body doc.SEND(0, reciver_list) print('send success')
class NotesMail(): """ 发送读取邮件有关的操作 """ def __init__(self, server, file): """Initialize @param server Server's name of Notes @param file Your data file, usually ends with '.nsf' """ self.session = DispatchEx('Notes.NotesSession') self.server = self.session.GetEnvironmentString("MailServer", True) self.db = self.session.GetDatabase(server, file) self.db.OPENMAIL self.myviews = [] def send_mail(self, receiver, subject, body=None): """发送邮件 @param receiver: 收件人 @param subject: 主题 @param body: 内容 """ doc = self.db.CREATEDOCUMENT doc.sendto = receiver doc.Subject = subject if body: doc.Body = body doc.SEND(0, receiver) def get_views(self): for view in self.db.Views: if view.IsFolder: self.myviews.append(view.name) def get_documents(self, view_name): """ @return generator """ documents = [] folder = self.db.GetView(view_name) if not folder: raise Exception('Folder {0} not found. '.format(view_name)) document = folder.GetFirstDocument while document: documents.append(document) document = folder.GetNextDocument(document) return documents def read_mail(self, view, attachment=False): """Read the latest mail @param view The view(fold) to access @param attachment Boolean, whether get attachment @return, dict Info of a mail """ result = {} documents = self.get_documents(view) latest_document = documents[-1:][0] extra_obj = Extract(latest_document) result = extra_obj.extract() if attachment: extra_obj.get_attachment() return result