Python基于smtplib协议实现发送邮件
SMTP(SimpleMailTransferProtocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。
Python创建SMTP对象语法如下:
importsmtplib
smtpObj=smtplib.SMTP([host[,port[,local_hostname]]])
参数说明:
- host:SMTP服务器主机。你可以指定主机的ip地址或者域名如:runoob.com,这个是可选参数。
- port:如果你提供了host参数,你需要指定SMTP服务使用的端口号,一般情况下SMTP端口号为25。
- local_hostname:如果SMTP在你的本机上,你只需要指定服务器地址为localhost即可。
代码如下
#coding=utf-8
"""
===========================
Author:多测师_王sir
Time:2020/5/2017:24
Wechat:15367499889
Company:上海多测师信息有限公司
===========================
"""
importos
importsmtplib
fromemail.mime.textimportMIMEText
fromemail.mime.applicationimportMIMEApplication
fromemail.mime.multipartimportMIMEMultipart
fromcommon.handleconfigimportconf
defsend_email(filename,title):
"""
发送邮件的功能函数
:paramfilename:文件的路径
:paramtitle:邮件的主题
:return:
"""
#第一步:连接邮箱的smtp服务器,并登录
smtp=smtplib.SMTP_SSL(host=conf.get("email","host"),port=conf.getint("email","port"))
smtp.login(user=conf.get("email","user"),password=conf.get("email","pwd"))
#第二步:构建一封邮件
#创建一封多组件的邮件
msg=MIMEMultipart()
withopen(filename,"rb")asf:
content=f.read()
#创建邮件文本内容
text_msg=MIMEText(content,_subtype="html",_charset="utf8")
#添加到多组件的邮件中
msg.attach(text_msg)
#创建邮件的附件
report_file=MIMEApplication(content)
report_file.add_header('content-disposition','attachment',filename=os.path.split(filename)[-1])
#将附件添加到多组件的邮件中
msg.attach(report_file)
#主题
msg["Subject"]=title
#发件人
msg["From"]=conf.get("email","from_addr")
#收件人
msg["To"]=conf.get("email","to_addr")
#第三步:发送邮箱
smtp.send_message(msg,from_addr=conf.get("email","from_addr"),to_addrs=conf.get("email","to_addr"))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。