Python 发送邮件,python发送邮件,#coding=utf-


#coding=utf-8 import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication class BaseMail:     def __init__( self, smtp,bSmtpAuth, sender, pwd ):         self.bSmtpAuth = bSmtpAuth         self.smtp   = smtp         self.sender = sender         self.pwd    = pwd     def _parserSend(self, sSubject, sContent, lsPlugin):         return sSubject, sContent, lsPlugin       def send ( self, sSubject, sContent, lsTo, lsCc = [], lsPlugin = [] ):         mit = MIMEMultipart()         mit['from'] = self.sender         mit['to'] = ','.join( lsTo )         if lsCc: mit['cc'] = ','.join( lsCc )         codeSubject, codeContent, codePlugin = self._parserSend(sSubject, sContent, lsPlugin)         mit.attach( MIMEText( codeContent, 'html', 'utf-8' ) )         mit['subject'] = codeSubject         for plugin in codePlugin:             mitFile = MIMEApplication( plugin['content'], )             mitFile.add_header( 'content-disposition', 'attachment', filename=plugin['subject'] )             mit.attach( mitFile )         server = smtplib.SMTP( self.smtp )         #server.set_debuglevel(smtplib.SMTP.debuglevel)         if self.bSmtpAuth: server.docmd( "EHLO server" )         server.starttls()         server.login( self.sender, self.pwd )         server.sendmail( self.sender, lsTo , mit.as_string() )         server.close() class GMail( BaseMail ):     def __init__( self, sender, pwd ):         BaseMail.__init__( self, 'smtp.gmail.com', True, sender, pwd )         self.__strcode = 'utf-8'    def _parserSend(self, sSubject, sContent, lsPlugin):         for i in lsPlugin:             i['subject'] = i['subject'].encode(self.__strcode)                  return sSubject.encode(self.__strcode), sContent.encode(self.__strcode), lsPlugin class Com63Mail( BaseMail ):     def __init__( self, sender, pwd ):         BaseMail.__init__( self, 'smtp.163.com', False, sender, pwd )         self.__strcode = 'utf-8'    def _parserSend(self, sSubject, sContent, lsPlugin):         for i in lsPlugin:             i['subject'] =  i['subject'].encode('gbk')         return sSubject, sContent.encode(self.__strcode), lsPlugin if __name__=="__main__" :     sSubject = u'python3000邮件发送测试'    sContent = u'<font color="#FF0066">热门评论</color>'    lsPlugin = [{'subject' : u'附1abc.txt', 'content' : u'内容1abc'}, {'subject' : u'附2abc.txt', 'content' : u'内容2abc'}]     gmail = GMail( 'x@gmail.com' , 'password' )     lsTo = ['xxx@gmail.com']     lsCc = []     gmail.send( sSubject, sContent, lsTo, lsCc, lsPlugin )     print 'gmail send'     sSubject = u'python3000邮件发送测试'    sContent = u'<font color="#FF0066">热门评论</color>'    lsPlugin = [{'subject' : u'附1abc.txt', 'content' : u'内容1abc'}, {'subject' : u'附2abc.txt', 'content' : u'内容2abc'}]     com163 = Com63Mail( 'x@163.com' , 'password' )     lsTo = ['xxx@163.com']     lsCc = []     com163.send(sSubject, sContent, lsTo, lsCc, lsPlugin)     print 'com163 send' #该片段来自于http://byrx.net

评论关闭