Python能实现很多我们人为非常繁琐的功能,这些繁琐的功能对于python来说也就是一段代码的事了,接下来小编给大家分享一个利用python自动发邮件,如果感兴趣的小伙伴可以耐心阅读下去,相信大家阅读完后一定能够有所收获 。废话不多说,直接上代码 。
文章插图
一、普通文本邮件(作通知训练结束用 :smiley: )
# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMEText # 第三方 SMTP 服务mail_host = "smtp.163.com" # SMTP服务器mail_user = "yourname" # 用户名mail_pass = "xxx" # 密码(这里的密码不是登录邮箱密码,而是授权码) sender = 'yourname@163.com' # 发件人邮箱receivers = 'othername@163.com'] # 接收人邮箱 content = 'Python Send Mail ! 训练结束!'title = 'Python SMTP Mail 训练结束' # 邮件主题message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码message['From'] = "{}".format(sender)message['To'] = ",".join(receivers)message['Subject'] = title try: smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465 smtpObj.login(mail_user, mail_pass) # 登录验证 smtpObj.sendmail(sender, receivers, message.as_string()) # 发送 print("mail has been send to {0} successfully.".format(receivers))except smtplib.SMTPException as e: print(e)二、加强版附件传输邮件
# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.header import Header# Files' Paths:file1 = 'mail.py'file2 = 'maill.py'# 收邮件的地址,可以多个 。Receivers = ['receiver1@163.com','receiver2@163.com'] # 邮件主题:title = 'Python SMTP 邮件(文件传输)'# 模拟服务器# SMTP服务器SMTPServer="smtp.163.com"# 发邮件的地址Sender="yourname@163.com"# 发送者邮件的授权密码,去163邮箱设置里获取 。并非是密码 。passwd="xxx" # 创建一个带附件的实例message = MIMEMultipart()message['From'] = Sendermessage['To'] = ",".join(Receivers)message['Subject'] = title# 邮件正文内容message.attach(MIMEText('附件中是要传输的文件 。 ', 'plain', 'utf-8'))message.attach(MIMEText('The files you need are as followed. ', 'plain', 'utf-8'))# 构造附件1att1 = MIMEText(open(file1, 'rb').read(), 'base64', 'utf-8')att1["Content-Type"] = 'application/octet-stream'att1["Content-Disposition"] = 'attachment; filename={0}'.format(file1)message.attach(att1)# 构造附件2att2 = MIMEText(open(file2, 'rb').read(), 'base64', 'utf-8')att2["Content-Type"] = 'application/octet-stream'att2["Content-Disposition"] = 'attachment; filename={0}'.format(file2)message.attach(att2)try: mailServer = smtplib.SMTP(SMTPServer, 25) # 25为端口号(邮件),0-1024都被系统占用了 # 登录邮箱 mailServer.login(Sender, passwd) # 需要的是,邮箱的地址和授权密码 # 发送文件 mailServer.sendmail(Sender, Receivers, message.as_string()) print("邮件发送成功") print("Mail with {0} & {1} has been send to {2} successfully.".format(file1,file2,Receivers))except smtplib.SMTPException as e: print("Error: 无法发送邮件") print(e)
推荐阅读
- 低版本的Python怎么卸载?Python低版本可以卸载吗
- MySQL数据库怎么退出?MySQL数据库如何去关闭
- Python字典为什么键不能重复?Python数据类型字典详解
- 京东618电脑会降价吗?京东618怎么省钱?
- 京东快递单号怎么查询?服务怎么样?
- 京东商家处罚规则是什么?怎么处理违规商家?
- 怎么加入淘宝放单平台?附注意事项
- 怎么联系商家放单给我?放单过程是什么?
- 速卖通补单处罚是什么?处罚以后怎么办?
- shopee开店没有流水怎么办?shopee个人开店条件