Python中Mail的使用

  發送郵件的功能時常用到,在Python也是如此,當然可以使用Python調用jar發送郵件,但其實Python也有相應的模塊:smtplib和email。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
class smtpClient:
    def __init__(self, logger):
        self.logger = logger
        self.smtp = None
    def connect(self, smtpServerIp, port, userName, password, isAuth=True):
        try:
            self.smtp = smtplib.SMTP()
            self.smtp.set_debuglevel(1)
            self.smtp.connect(smtpServerIp, port)
            if isAuth:
                self.smtp.set_debuglevel(0)
                self.smtp.login(userName, password)
        except Exception, exInfo:
            logInfo = "Connect SMTP server failed: [%s]" %exInfo
            self.logger.error(logInfo)
    def disconnect(self):
        try:
            if self.smtp:
                 self.smtp.set_debuglevel(1)
                 self.smtp.quit()
        except Exception, exInfo:
            logInfo = "Disconnect SMTP server failed: [%s]" %exInfo
            self.logger.error(logInfo)
    '''Send HTML format file'''
    def send(self, subject, sender, receiver, ccer, txt, pic=""):
        try:
            msgRoot = MIMEMultipart('related')
            msgRoot['Subject'] = subject
            msgRoot['From'] = sender
            msgRoot['To'] = receiver
            msgRoot['Cc'] = ccer
            msgRoot.preamble = 'This is a multi-part message in MIME format.'
            msgAlternative = MIMEMultipart('alternative')
            msgText = MIMEText(txt, 'html', 'utf-8')
            msgAlternative.attach(msgText)
            msgRoot.attach(msgAlternative)
            if pic:
                picReader = open(pic, 'rb')
                msgImage = MIMEImage(picReader.read())
                picReader.close()
                msgImage.add_header('Content-ID', '<image1>')
                msgRoot.attach(msgImage)
            self.smtp.set_debuglevel(0)
            toer = receiver + ',' + ccer
            self.smtp.sendmail(sender, toer.split(','), msgRoot.as_string())
        except Exception, exInfo:
            logInfo = "Send mail failed: [%s]" %exInfo
            self.logger.error(logInfo)

MIMEText和MIMEImage能夠提供Mail不同的文本樣式和圖片。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章