登录
登录 注册新账号
注册
已有账号登录
Python基于smtplib模块发送邮件代码实例
骆爽 阅读 28 次
6 天前发布

smtplib模块负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。

email模块负责构造邮件:指的是邮箱页面显示的一些构造,如发件人,收件人,主题,正文,附件等。

email模块下有mime包,mime英文全称为"Multipurpose Internet Mail Extensions",即多用途互联网邮件扩展,是目前互联网电子邮件普遍遵循的邮件技术规范。

该mime包下常用的有三个模块:text,image,multpart。

import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header #邮件服务器信息 smtpserver = "smtp.qq.com" port = 465 # For starttls senderemail = "12345689@qq.com" password="" #get password from mailsetting #发送邮件信息,可以发送给多个收件人 receivers=["12345689@163.com","12345689@qq.com"] subject="This is import Python SMTP 邮件(文件传输) 多媒体测试" # message = MIMEText(text, "plain", "utf-8") #文本邮件 message = MIMEMultipart() message["Subject"] = Header(subject, "utf-8") message["from"] = senderemail message["to"] = ",".join(receivers) # 邮件正文内容 text=""" Dear Sir: how are you ? \n for detail information pls refer to attach1。\n The files you need are as followed.\n If you have any concern pls let me known.\n enjoy your weekend.\n BEST REGARDS \n """ # message.attach(MIMEText('for detail information pls refer to attach1。\n The files you need are as followed. \n If you have any concern pls let me known. \n enjoy your weekend', 'plain', 'utf-8') message.attach(MIMEText(text,'plain','utf-8')) # 构造附件1 attachfile1='IMG1965.JPG' attach1 = MIMEText(open(attachfile1, 'rb').read(), 'base64', 'utf-8') attach1["Content-Type"] = 'application/octet-stream' attach1["Content-Disposition"] = 'attachment; filename={0}'.format(attachfile1) message.attach(attach1) # 构造附件2 attachfile2='YLJ.jpg' attach2 = MIMEText(open(attachfile2, 'rb').read(), 'base64', 'utf-8') attach2["Content-Type"] = 'application/octet-stream' attach2["Content-Disposition"] = 'attachment; filename={0}'.format(attachfile2) message.attach(attach2) # Try to log in to server and send email # server = smtplib.SMTPSSL(smtpserver,port) server = smtplib.SMTPSSL(smtpserver,port) try: server.login(senderemail, password) server.sendmail(senderemail,receivers,message.asstring()) print("邮件发送成功!!!") print("Mail with {0} & {1} has been send to {2} successfully.".format(attachfile1,attachfile2,receivers)) except Exception as e: # Print any error messages to stdout print("Error: 无法发送邮件") print(e) finally: server.quit()

结果

邮件发送成功!!!

Mail with IMG1965.JPG & IMG1963.jpg has been send to ['12345689@163.com', '12345689@qq.com'] successfully.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


©著作权归作者所有:来自51CTO博客作者wx5ecc6bcb4713c的原创作品,如需转载,请注明出处,否则将追究法律责任