python发送邮件

今天在开源中国发现的,测试了下可以使用,保存一份,以后可能会有用到。



#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'}]
com163 = Com63Mail( 'xxxx@163.com' , 'xxxx' )
lsTo = ['xxxx@163.com']
lsCc = []
com163.send(sSubject, sContent, lsTo, lsCc, lsPlugin)
print 'com163 send'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值