def __message(self, mail_from, mail_to, subject, sender, recipient, text, file_name, round): # 邮件消息生成 message = MIMEMultipart() # MIME生成器初始化 if sender != '': has_sender = True message['From'] = sender else: has_sender = False message['From'] = mail_from if recipient != '': has_recipient = True message['To'] = recipient else: has_recipient = False message['To'] = mail_to message['Subject'] = subject if round and conf.round_image: # text图像化 pygame.init() font = pygame.font.Font(os.path.join(conf.font_path), conf.word_size_num) ftext = font.render(text, True, (0, 0, 0), (255, 255, 255)) pygame.image.save(ftext, conf.image_path) html = '<div><img src=\'cid:imgid\'></div>' message_html = MIMEText(html, 'html', 'utf-8') message.attach(message_html) with open(conf.image_path, 'rb') as f: message_image = MIMEImage(f.read()) f.close() message_image.add_header('Content-ID', 'imgid') message.attach(message_image) else: message.attach(MIMEText(text)) if file_name != '': # 加载附件 with open(conf.file_path, 'rb') as f: message_attachment = MIMEApplication(f.read()) f.close() message_attachment.add_header( 'Content-Disposition', 'attachment', filename=file_name) message.attach(message_attachment) message = str(message) if has_sender: # 这是MIME的bug导致的,最后自行处理 message = (message[:message.find('\nTo: ')] + '<' + mail_from + '>' + message[message.find('\nTo: '):]) if has_recipient: message = (message[:message.find('\nSubject: ')] + '<' + mail_to + '>' + message[message.find('\nSubject: '):]) return message