利用python自动发邮箱
312次观看
标签:
邮箱
python
老师回答
正文
废话不多说,直接上代码。
一、普通文本邮件(作通知训练结束用 :smiley: )
# -*- coding: UTF-8 -*-
import smtplib
from 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 smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from 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'] = Sender
message['To'] = ",".join(Receivers)
message['Subject'] = title
# 邮件正文内容
message.attach(MIMEText('附件中是要传输的文件。n ', 'plain', 'utf-8'))
message.attach(MIMEText('The files you need are as followed. n ', 'plain', 'utf-8'))
# 构造附件1
att1 = 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)
# 构造附件2
att2 = 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)
后话
可以把代码加到网络train.py的最后,别忘了在train.py的开头加上:
# -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
然后你就可以专心忙自己的事情,网络训练结束就自动发邮件啦~
©本文版权归环球青藤所有,任何形式转载请联系我们。
免费直播
精选课程
相关推荐