发表于 2018-8-10 06:54:54

49. Python 发邮件(2)

import codecs  
import email.mime.multipart
  
import email.mime.text
  
import email.header
  
import os
  
from email.mime.image import MIMEImage
  
from util import getProperty
  
import smtplib
  

  

  
class SendMail(object):
  
    def __init__(self):
  
      self.sendFrom = getProperty("From")
  
      self.sendTo = getProperty("To").split(",")
  
      self.connect = getProperty("message")
  
      self.sendCc = getProperty("Cc").split(",")
  
      self.sendFile = list()
  
      self.sendImage = list()
  

  
      for i in getProperty("File").split(","):
  
            self.sendFile.append(i.replace("\r", ""))
  
      for j in getProperty("Image").split(","):
  
            self.sendImage.append(j.replace("\r", ""))
  

  
      self.msg = None
  

  
    def setEmailHeader(self):
  
      self.msg = email.mime.multipart.MIMEMultipart()
  
      self.msg['from'] = self.sendFrom
  
      self.msg['to'] = ";".join(self.sendTo)
  
      self.msg['cc'] = ";".join(self.sendCc)
  
      self.msg['subject'] = email.header.Header(getProperty("Subject"))
  

  
    def setMessage(self):
  
      text = email.mime.text.MIMEText(self.connect, 'html', 'utf-8')
  
      self.msg.attach(text)
  

  
    def setFile(self):
  
      for file in self.sendFile:
  
            if os.path.exists(file):
  
                with codecs.open(file, "rb") as f:
  
                  attr = email.mime.text.MIMEText(str(f.read()), "html", "utf-8")
  
                attr["Content-Type"] = 'application/octet-stream'
  
                attr.add_header('Content-Disposition', 'attachment',filename=('utf-8', '', file))
  
                self.msg.attach(attr)
  
            else:
  
                print ("{0} file is not exists!".format(file))
  

  
    def setImage(self):
  
      start = 1
  
      for image in self.sendImage:
  
            if os.path.exists(image):
  
                with codecs.open(image, "rb") as I:
  
                  attrImage = MIMEImage(I.read())
  
                  attrImage.add_header('Content-ID', '<image{0}>'.format(int(start)))
  
                  self.msg.attach(attrImage)
  
                  start += 1
  
            else:
  
                print(&quot;{0} image is no exists!&quot;.format(image))
  

  

  
    def sendemailLast(self):
  
      smtp = smtplib.SMTP_SSL(&quot;smtp.qq.com&quot;, 465)
  
      #smtp.set_debuglevel(1)
  
      #print (self.sendFrom)
  
      smtp.login(self.sendFrom, 'xrutyyjbcaae')
  
      #print (self.sendTo)
  
      smtp.sendmail(self.sendFrom, self.sendTo + self.sendCc, self.msg.as_string())
  

  
def main():
  
    sendMail = SendMail()
  
    sendMail.setEmailHeader()
  
    sendMail.setMessage()
  
    sendMail.setFile()
  
    sendMail.setImage()
  
    sendMail.sendemailLast()
  

  
if __name__ == '__main__':
  
    main()
页: [1]
查看完整版本: 49. Python 发邮件(2)