一、具体操作步骤
①打开编译环境,然后利用快捷键新建一个Python的文件
②测试
运用SMTP、MAIL;
首先QQ邮箱获取授权码,并且设置授权码.txt,设置成绩.txt
本次的例子是创建一个文本文档,每一行包括学生姓名,邮箱,成绩
读取文档的信息,对所有不及格的人发送邮件
③相关的源代码
import smtplib #用于登录到发送邮件的服务器
from email.mime.text import MIMEText #用于构造邮件文本内容
#(1)定义参数
mail_user = "2655253080@qq.com"#发件人的邮箱用户名
with open("授权码.txt","r",encoding="utf-8") as f:
mail_pwd = f.read()#授权码
mail_host = "smtp.qq.com"#腾讯发送邮件的服务器地址
mail_port = 465 #服务器端口号
#mail_receiver = ["xxx@qq.com","xxx@qq.com",""] #收件人(邮箱)
mail_receiver = []
mail_name=[]#姓名
mail_score=[]#成绩
#给三个空列表填充给具体数据,数据来自成绩.txt
with open("成绩.txt","r",encoding="utf-8") as f:
for line in f.readlines():#又可以这样做:for line in f:
list_info=line.split(" ")#每行以空格分隔开,返回列表
mail_name.append(list_info[0])
mail_receiver.append(list_info[1])
mail_score.append(list_info[2].strip())#去除首尾空白字符
print(mail_name,mail_receiver,mail_score)
#3 登录
client = smtplib.SMTP_SSL(mail_host,mail_port)#地址,
client.login(mail_user,mail_pwd)#用户名,密码
for name,receiver,score in zip (mail_name,mail_receiver ,mail_score):
if int(score)<60:
print(name,receiver,score)
mail_subject = "成绩通知"
mail_content = " "#正文
#先登录,构造一封邮件发送,再构造发送,最后退出登录
# client = smtplib.SMTP_SSL(mail_host,mail_port)#地址,
# client.login(mail_user,mail_pwd)#用户名,密码
#(2)构造邮件对象
mail_content=f"""你好,{name}:<br/> 你的成绩是<font szie=10 color= red>{score},请注意补考通知!"""
msg = MIMEText(mail_content,"html","utf-8")
#msg = MIMEText(mail_content,"plain","utf-8")#正文,格式(纯文本plain,html)
msg["Subject"] = mail_subject
msg["From"] = f"Sweet<{mail_user}>"
msg["To"] = receiver
#msg["To"] = ";".join(mail_receiver)#用分号把列表的所有元素结合起来
client.send_message(msg)#把上面构造好的邮件对象发送出去
client.quit()