Example #1
0
 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