Beispiel #1
0
 def setAttachments(self, xml_doc): # bodystructure dom
     msg_id = self.mailInfoFrame.msg_id[:].replace('/', '_')
     # save bodystructure
     msg_struct = ACNT_DIR + self.email_id + '/mails/' + msg_id + '.xml'
     if not os.path.exists(msg_struct):
         with open(msg_struct, 'w') as fd:
             fd.write(unicode(xml_doc))
     # get attachments
     text_part_num, txt_enc, attachments = getAttachments(xml_doc)
     for [part_num, enc, filename, file_size] in attachments:
         ro = self.tableWidget.rowCount()
         self.tableWidget.insertRow(ro)
         item = QTableWidgetItem(QIcon(':/download.png'), filename)
         item.part_num = part_num
         item.encoding = enc
         self.tableWidget.setItem(ro, 0, item)
         self.tableWidget.setItem(ro, 1, QTableWidgetItem(file_size))
     if self.tableWidget.rowCount() > 0:
         self.tableWidget.show()
     # load html body
     msg_file = ACNT_DIR + self.email_id + '/mails/' + msg_id + '.txt'
     if os.path.exists(msg_file):
         with open(msg_file, 'rb') as fd:
             html = fd.read()
         self.setMailText(unicode(html, 'utf8')) # convert byte string to unicode
     else:
         row = self.mailsTable.selectionModel().selectedRows()[0].row()
         self.mailTextRequested.emit(self.total_mails-row, text_part_num, txt_enc)
         self.mailsTable.cellWidget(row, 0).cached = True