• python 通过邮件发送附件之企业QQ邮箱


    def setmailinfo(self, receiveUser, cc, subject, text, text_type, *attachmentFilePaths):
      # 设置邮件的基本信息(收件人,抄送,主题,正文,附件,可变参数附件路径列表)
      self.msg['From'] = self.mailUser

      # receiveUser cc must be list,[]
      self.msg['To'] = receiveUser
      self.msg['Cc'] = cc

      self.msg['Subject'] = Header(subject, "utf-8")
      self.msg.attach(MIMEText(text, text_type))
      for attachmentFilePath in attachmentFilePaths:

      self.msg.attach(self.getattachmentfromfile(attachmentFilePath))

      # receiver 必须是列表

      receiver = [i for i in self.msg['To'].split(',')] + [k for k in self.msg['Cc'].split(',')]

      self.mailServer.sendmail(self.mailUser, receiver, self.msg.as_string())
      logger.info('Sent email to {0}, Cc {0}'.format(self.msg['To'], self.msg['Cc']))

    def getattachmentfromfile(self, attachmentFilePath):
      # 通过路径添加附件
      part = MIMEBase('application', "octet-stream")
      part.set_payload(open(attachmentFilePath, "rb").read())
      encode_base64(part)

      # 指定编码格式, qq邮箱对邮件使用gbk编码,否则可能会出现文件名乱码
      part.add_header('Content-Disposition', 'attachment', filename=("gbk", "", os.path.basename(attachmentFilePath)))
      return part

    本博客的内容如果没有标注转载字样,均属个人原创!欢迎学习交流,如果觉得有价值,欢迎转载,转载请注明出处,谢谢!
  • 相关阅读:
    ASP.Net Core -- 模型验证
    C# -- nameof什么意思?
    C# -- value是什么意思?
    C# -- 异常(二)
    C# -- 异常(一)
    C# -- 委托(二)
    C# -- 委托(一)
    ASP.Net Core -- Controller返回View
    ASP.Net Core -- 中间件
    ASP.Net Core -- 服务注册和管道
  • 原文地址:https://www.cnblogs.com/L-O-N/p/12928639.html
Copyright © 2020-2023  润新知