49. Python 发邮件(2)
import codecsimport 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("{0} image is no exists!".format(image))
def sendemailLast(self):
smtp = smtplib.SMTP_SSL("smtp.qq.com", 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]