视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python发送Email方法实例
2020-11-27 14:30:50 责编:小采
文档


本文以实例形式展示了Python发送Email功能的实现方法,有不错的实用价值的技巧,且功能较为完善。具体实现方法如下:

主要功能代码如下:

#/usr/bin/env python
# -*- encoding=utf-8 -*-

import base
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

class CCSendMail:
 def __init__(self,host="your.mailhost.com",username='fromuser@xxx.com',password='passwd'):
 self.__smtp=smtplib.SMTP(host)
 self.__subject=None
 self.__content=None
 self.__from=None
 self.__to=[]
 self.__style='html'
 self.__charset='gb2312'
 self.username = username
 self.password = password
 self.fromAlias='fromuser' #发件人别名
 self.from2=''
 
 def close(self):
 try:
 self.__smtp.quit()
 except Exception ,e:
 pass 
 def setFromAlias(self,alias):
 self.fromAlias=alias
 def setStyle(self,style):
 self.__style = style
 def setFrom2(self,from2):
 self.from2=from2
 
 def setSubject(self,subject):
 self.__subject=subject
 
 def setContent(self,content):
 self.__content=content
 
 def setFrom(self,address):
 self.__from=address
 
 def addTo(self,address):
 self.__to.append(address)
 
 def setCharset(self,charset):
 self.__charset=charset
 
 def send(self):
 try:
 self.__smtp.set_debuglevel(1)
 
 #login if necessary
 if self.username and self.password:
 self.__smtp.login(self.username,self.password)
 
 msgRoot = MIMEMultipart('related')
 msgRoot['Subject'] = self.__subject
 aliasB6=base.encodestring(self.fromAlias.encode(self.__charset))
 if len(self.from2)==0:
 msgRoot['From'] = "=?%s?B?%s?=%s"%(self.__charset,aliasB6.strip(),self.__from)
 else:
 msgRoot['From'] = "%s"%(self.from2)
 msgRoot['To'] = ";".join(self.__to)
 
 msgAlternative = MIMEMultipart('alternative')
 msgRoot.attach(msgAlternative)
 
 msgText = MIMEText(self.__content, self.__style,self.__charset)
 msgAlternative.attach(msgText)

 self.__smtp.sendmail(self.__from,self.__to,msgRoot.as_string())
 return True
 except Exception,e:
 print "Error ",e
 return False
 
 def clearRecipient(self):
 self.__to = []
 
 #给单个人发送邮件
 def sendHtml(self,address,title,content):
 self.setStyle('html')
 self.setFrom("<%s>"%self.username)
 if not isinstance(content,str):
 content = content.encode('gb18030')
 self.addTo(address)
 self.setSubject(title)
 self.setContent(content)
 ret = self.send()
 self.close()
 return ret
 
 #群发邮件
 def sendMoreHtml(self,addressList,title,content):
 self.setStyle('html')
 self.setFrom("<%s>"%self.username)
 if not isinstance(content,str):
 content = content.encode('gb18030')
 for address in addressList:
 self.addTo(address)
 self.setSubject(title)
 self.setContent(content)
 ret = self.send()
 self.close()
 return ret

#测试
def main():
 send=CCSendMail()
 send.sendHtml('touser@xxx.com',u'邮件标题',u'邮件内容')
 #send.sendMoreHtml([touser1@xx.com,touser2@xx.com],u'邮件标题',u'邮件内容')
 
if __name__=='__main__':
 main()

希望本文所述实例对大家的Python程序设计有一定的帮助。

下载本文
显示全文
专题