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
评论关闭