本文主要是介绍测试报告--邮件发送(单人、多人、附件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实战背景描述
将端口扫描结果存储到txt文件内,通过qq邮箱将扫描结果文件发送给其他人。
调用方法
在实际端口扫描结束后,调用邮件发送方法即可 。
实现邮件发送代码
# !/usr/bin/python3
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddrmy_sender = '27860*****@qq.com' # 发件人邮箱账号
my_pass = 'xaodfcr*******' # 发件人邮箱密码
my_user = '523*****@qq.com' # 收件人邮箱账号,我这边发送给自己def mail():ret = Truetry:# msg = MIMEText('填写邮件内容', 'plain', 'utf-8')msg = MIMEMultipart()msg['From'] = formataddr(["From金卷卷", my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号msg['To'] = formataddr(["To绿豆麻麻", my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号msg['Subject'] = "端口扫描结果报告" # 邮件的主题,也可以说是标题msg.attach(MIMEText('附件为端口扫描结果报告,请查收', 'plain', 'utf-8'))# 构造附件# att = MIMEText(open('E:\\study_socket\\第四课\\1.png', 'rb').read(), 'base64', 'utf-8')# att["Content-Type"] = 'application/octet-stream'#附件名字为非中文的写法# att["Content-Disposition"] = 'attachment; filename="1.png"'# msg.attach(att)# 构造附件2--att = MIMEText(open('界面化_扫描结果.txt', 'rb').read(), 'base64', 'utf-8')att["Content-Type"] = 'application/octet-stream'# 附件名字为中文att.add_header("Content-Disposition", "attachment", filename=("gbk", "", "界面化_扫描结果.txt"))msg.attach(att)server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是25server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码server.sendmail(my_sender, [my_user, ], msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件server.quit() # 关闭连接except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=Falseret = Falsereturn ret
# ret = mail()def send_mail():ret = mail()if ret:print("邮件发送成功")else:print("邮件发送失败")
# if __name__ == '__main__':
# send_mail()
邮件发送结果
邮件发送给多人
场景:从页面的输入框内获取接收人邮箱(字符串类型)
------------------------------------------------
def send_mail(url,executor_account,executor_pwd,Receivers):
#1.将获取到的邮箱列表通过“,”进行切割为列表Receivers_list = Receivers.split(',')# print (f'发件人邮箱executor_account={executor_account}')# print (f'发件邮箱的授权密码executor_pwd={executor_pwd}')# print (f'接收人邮箱列表Receivers={Receivers}')ret = Truetry:msg = MIMEMultipart()msg['From'] = formataddr(["executor_account", executor_account])
#2.将多人邮箱通过“,”拼接后传递给 msg['To'] msg['To'] = ','.join(Receivers_list) msg['Subject'] = "自动化运行结束" msg.attach(MIMEText('您的自动化已执行结束,请查收~点击查看报告内容'+url, 'plain', 'utf-8'))server = smtplib.SMTP_SSL("smtp.qq.com", 465) server.login(executor_account, executor_pwd)
#3.发送邮件时,多个收件人以列表形式传递server.sendmail(executor_account, msg['To'].split(','), msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件server.quit() # 关闭连接print ("邮件发送成功")except Exception: ret = Falsereturn ret
这篇关于测试报告--邮件发送(单人、多人、附件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!