使用Python怎么实现邮件发送功能
使用Python怎么实现邮件发送功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
#encoding:utf-8
importlogging
importsmtplib
fromemail.mime.textimportMIMEText
importemail.utils
fromdatetimeimportdatetime
_logger=logging.getLogger('utils.mailclient')
classMailClient(object):
def__init__(self,host,port,user,pwd=''):
self._host=host
self._port=port
self._user=user
self._pwd=pwd
self._smtp_server=None
self._debug=False
self._keepalive=True
defset_keepalive(self,keepalive):
self._keepalive=keepalive
defset_debug(self,debug):
self._debug=debug
ifself._smtp_serverisnotNone:
self._smtp_server.set_debuglevel(self._debug)
def_connect(self):
ifself._smtp_serverisNone:
_smtp_server=smtplib.SMTP(self._host,self._port)
_smtp_server.ehlo()
_smtp_server.starttls()
_smtp_server.set_debuglevel(self._debug)
ifself._pwd:
_smtp_server.login(self._user,self._pwd)
self._smtp_server=_smtp_server
returnself._smtp_server
def_dispose(self):
ifself._smtp_serverisnotNone:
self._smtp_server.quit()
self._smtp_server=None
defsend(self,to_addrs,subject,content,isdispose=True):
_smtp_server=self._connect()
ifnotisinstance(to_addrs,list):
to_addrs=[to_addrs]
_msg=MIMEText(content,'html','utf-8')
_msg['Subject']=subject
_msg['From']=self._user
_msg['To']=';'.join(to_addrs)
_msg['Date']=datetime.now().strftime('%Y-%d-%m%H:%M:%S')
_smtp_server.sendmail(self._user,to_addrs,_msg.as_string())
isdisposeand(notself._keepalive)andself._dispose()
defsend_mails(self,mails):
_smtp_server=self._connect()
formailinmails:
self._send_mail(mail.get('to'),mail.get('subject'),mail.get('content'),False)
(notself._keepalive)andself._dispose()
defclose(self):
self._dispose()
if__name__=='__main__':
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s%(name)s%(levelname)s:%(message)s',
datefmt='%Y-%m-%d%H:%M:%S')
importtime
s=MailClient('smtp.qq.com',587,'10010@qq.com','授权码')#注意,此处端口要用587,465端口是ssl使用的。
s.set_keepalive(False)
s.set_debug(True)
st=time.time()
s.send('收信人邮箱地址','测试','测试邮件FromQQ')#要发送的账号、标题、内容
print(time.time()-st)看完上述内容,你们掌握使用Python怎么实现邮件发送功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!
推荐阅读
-
一文教你Python如何快速精准抓取网页数据
本文将使用requests和beautifulsoup这两个流行的库来实现。1.准备工作首先安装必要的库:pipinst...
-
使用Python实现IP地址和端口状态检测与监控
-
基于Python打造一个智能单词管理神器
-
Python实现微信自动锁定工具
-
使用Python创建一个功能完整的Windows风格计算器程序
python实现windows系统计算器程序(含高级功能)下面我将介绍如何使用python创建一个功能完整的windows风格计...
-
Python开发文字版随机事件游戏的项目实例
随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型。在这类游戏中,玩家必须应对随机发生的情况,这些情况可能会影响他们的资...
-
使用Pandas实现Excel中的数据透视表的项目实践
引言在数据分析中,数据透视表是一种非常强大的工具,它可以帮助我们快速汇总、分析和可视化大量数据。虽然excel提供了内置的数据透...
-
Pandas利用主表更新子表指定列小技巧
一、前言工作的小技巧,利用pandas读取主表和子表,利用主表的指定列,更新子表的指定列。案例:主表:uidname0...
-
Pandas中统计汇总可视化函数plot()的使用
-
Python中tensorflow的argmax()函数的使用小结
在tensorflow中,argmax()函数是一个非常重要的操作,它用于返回给定张量(tensor)沿指定轴的最大值的索引。这个...
