前提:前往QQ邮箱开启SMTP端口,获得授权码
pip install yagmail
import yagmail
# 连接邮箱服务器
email = yagmail.SMTP(user="QQ邮箱",
password="授权码",
host="smtp.qq.com",# smtp服务器,每个邮箱各不相同,请自行百度
port=465)# 服务器端口,自行百度
# 发送一份简单的邮件
email.send(to="QQ邮箱",
subject="测试邮件", #标题
contents="这是一封测试邮件...") #内容
# 关闭邮箱服务器的连接
email.close()
#给多人发送邮件,只需要to=["邮箱1", "邮箱2"...]换成邮箱列表即可
#email.send(['aa@163.com','bb@qq.com','cc@gmail.com'], 'subject', contents)
#发送带附件的邮件
#email.send('aaaa@qq.com', '发送附件', contents, ["d://log.txt","d://baidu_img.jpg"])
如下是已封装好的类
# -*- encoding=utf8 -*-
import yagmail
import requests
import time
class Mail(object):
@classmethod
def sendmail(self,msg,title,receivers):
"""发送邮件
Arguments:
mst{str} ———邮件正文
title{str} ————邮件标题
receivers{list} ————邮件接收者,数组 """
yag=yagmail.SMTP(
host="smtp.qq.com",user="QQ邮箱",
password="slycewbmwqzrfhbj",smtp_ssl=True,port=465
)
try:
yag.send(subject=title,to=receivers,contents=msg)
Mail.log() #打印时间
print("邮件正常发送")
except BaseException as e:
print(e)
print("error:无法发件邮件")
@classmethod
def log(self):
noew_time=time.strftime(
"%Y-%m-%d %H:%M:%S",time.localtime()
)
print(noew_time)
def test(self):
respoons=requests.get("http://www.baidu.com")
if respoons.status_code!=200:
print("访问失败")
print("开始发送邮件")
Mail.sendmail(msg=[r"D:\CAD作业打印及简历\plot.log",r"D:\CAD作业打印及简历\实训作业.jpg"],title="打开网页",receivers=["邮箱“],)
#msg是内容,可以是文本,可以是文件等
a=Mail()
a.test()