import smtplib
import os
from email.header import Header
from email.mime.text import MIMEText
# shenyuximr@163.com
def sendemail(host,usernames,verify):
# 发件人和收件人
sender = 'luckyletop@163.com'
# receiver = 'xxxxxx@qq.com'
receiver = 'luckyletop@163.com' # 所使用的用来发送邮件的SMTP服务器
smtpserver = 'smtp.163.com' # 发送邮箱的用户名和授权码(不是登录邮箱的密码)
username = 'luckyletop@163.com'
password = 'UPLUATHPNLKSUCZM' # 邮件主题
mail_title = '接口测试报告'
send_user = '奥里给'
verify_url = "127.0.0.1"
# 读取html文件内容
# f = open('/Users/echo/Desktop/login/leapin-api/leapin/static/mail.html', "r+", encoding="utf-8") # HTML文件默认和当前文件在同一路径下,若不在同一路径下,需要指定要发送的HTML文件的路径
# file_data = ""
# data = f.read()
# for line in data:
# if "userName" in data:
# line = line.replace("userName", send_user)
# elif "reset_link" in line:
# line = line.replace("reset_link", verify_url)
# elif "host" in line:
# line = line.replace("host","ddddddddddd")
# f.write(data)
# f.close() with open(r"C:\Users\lenovo\Desktop\zi\inter.html", "r", encoding="utf-8") as f1,open("%s.bak" % r"C:\Users\lenovo\Desktop\zi\inter.html", "w+", encoding="utf-8") as f2:
# for line in f1.readlines():
# if '{host}' in line:
# line = line.replace('{host}', host)
# elif '{userName}' in line:
# line = line.replace('{userName}', usernames)
# elif 'reset_link' in line:
# line = line.replace('reset_link', verify)
# f2.write(line)
# data = f2.read()
data = f1.read()
data = data.replace("{host}",host).replace("{userName}", usernames).replace("reset_link", verify)
f2.write(data)
# os.remove("/Users/echo/Desktop/login/leapin-api/leapin/static/mail.html")
# os.rename("%s.bak" % "/Users/echo/Desktop/login/leapin-api/leapin/static/mail.html", "/Users/echo/Desktop/login/leapin-api/leapin/static/mail.html")
# data = f1.read() # mail_body = f.read()
# print(mail_body.replace('{userName}', "ssssssssss"))
# print(mail_body.replace('{host}', "127.0.0.1"))
# print(mail_body.replace('reset_link', "verify_url")) # 邮件内容, 格式, 编码
message = MIMEText(data, 'html', 'utf-8')
message['From'] = sender
#多人发送
msg_to = ['luckyletop@163.com','shenyuximr@163.com']
message['To'] = ','.join(msg_to)
#单人发送
# message['To'] = receiver
message['Subject'] = Header(mail_title, 'utf-8') try:
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login(username, password)
smtp.sendmail(sender, message['To'].split(','), message.as_string())
print("发送邮件成功!!!")
smtp.quit()
except smtplib.SMTPException:
print("发送邮件失败!!!") # import os
# def alter(file,old_str,new_str):
# """
# 将替换的字符串写到一个新的文件中,然后将原文件删除,新文件改为原来文件的名字
# :param file: 文件路径
# :param old_str: 需要替换的字符串
# :param new_str: 替换的字符串
# :return: None
# """
# with open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2:
# for line in f1:
# if old_str in line:
# line = line.replace(old_str, new_str)
# f2.write(line)
# os.remove(file)
# os.rename("%s.bak" % file, file)
#
# alter("/Users/echo/Desktop/login/leapin-api/leapin/static/mail.html", "host", "127.0.0.1")
# alter("/Users/echo/Desktop/login/leapin-api/leapin/static/mail.html", "userName", "ssssss")
# alter("/Users/echo/Desktop/login/leapin-api/leapin/static/mail.html", "reset_link", "verify") if __name__ == '__main__':
sendemail('luckyletop@163.com', 'luckyletop@163.com','smtp.163.com' )

python发送邮件+多人+附件 !!!!的更多相关文章

  1. python 发送邮件+多人+附件 最好用!!!

    #!python3#codin=utf-8import yagmail yag = yagmail.SMTP(user='2679813@qq.com', password='mwlgdmwv4rss ...

  2. python发送邮件(带附件)

    python通过stmp发送qq邮件,带附件 import smtplib from email.mime.multipart import MIMEMultipart from email.mime ...

  3. python发送邮件

    python发送邮件(无附件) ======================================================= #!/usr/bin/env python#coding ...

  4. python发送邮件及附件

    今天给大伙说说python发送邮件,官方的多余的话自己去百度好了,还有一大堆文档说实话不到万不得已的时候一般人都不会去看,回归主题: 本人是mac如果没有按照依赖模块的请按照下面的截图安装 导入模块如 ...

  5. 解读Python发送邮件

    解读Python发送邮件 Python发送邮件需要smtplib和email两个模块.也正是由于我们在实际工作中可以导入这些模块,才使得处理工作中的任务变得更加的简单.今天,就来好好学习一下使用Pyt ...

  6. python 发送邮件例子

    想到用python发送邮件 主要是服务器 有时候会产生coredump文件  ,然后因为脚本重启原因,服务器coredump产生后会重启 但是没有主动通知开发人员 想了下可以写个脚本一旦产生cored ...

  7. 【转】【Python】Python发送邮件(常见四种邮件内容)

    在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调 ...

  8. python 发送邮件 <QQ+腾讯企业邮箱>

    一.使用QQ邮箱或者腾讯企业邮箱 python 发送邮件属于网络编程方向的,在工作中,我需要经常用邮件来检测我的程序运行状况.使用起来十分方便,这里我就用腾讯企业邮箱作为我的收发邮箱来使用. 使用py ...

  9. python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)

    简介 本篇文章与前边没有多大关联,就是对前边有关发邮件的总结和梳理.在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下, ...

  10. Python发送邮件(常见四种邮件内容)

    Python发送邮件(常见四种邮件内容) 转载 2017年03月03日 17:17:04   转自:http://lizhenliang.blog.51cto.com/7876557/1875330 ...

随机推荐

  1. Shader学习笔记 (一) :利用shader在一个面绘制出圆

    在各种游戏中,想必大家一定和我一样总是惊叹于游戏画面的各种炫酷的特效. 作为游戏开发中单独列出的一个职业TA(Technology Art),他们会利用GLSL或者HLSL等着色器语言绘制出一幅幅美丽 ...

  2. L2-037 包装机

    #include <bits/stdc++.h> using namespace std; const int N = 110; stack<char> stk[N]; int ...

  3. 分布式文件系统HDFS简介

    HDFS实现目标: 兼容廉价的硬件设备    支持大数据集   实现流数据读写   支持简单的文件模型    强大的跨平台兼容性 自身的局限性: 不适合低延迟的数据访问   无法高效储存大量小文件  ...

  4. 数据仓库主流开发语言——SQL

    数仓开发语言概述  SQL语言介绍 数仓与SQL 结构化数据 二维表结构 SQL语法分类

  5. SpringSecurity入门(SSM版)

    1. 简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Sp ...

  6. SpringBoot-Validate优雅的实现参数校验,详细示例~

    1.是什么? 它简化了 Java Bean Validation 的集成.Java Bean Validation 通过 JSR 380,也称为 Bean Validation 2.0,是一种标准化的 ...

  7. DRF过滤器

    https://www.django-rest-framework.org/api-guide/filtering 一般情况下,我们可以重写DRF视图类的get_queryset()方法来实现查询结果 ...

  8. Oracle重做、归档日志

    日志文件 oracle日志文件分为两种: 重做日志文件(redo),或者称为"在线重做日志" 归档日志文件(arch),或者称为"归档重做日志" 在线重做日志文 ...

  9. bash shell笔记整理——less命令

    less命令的作用 less和cat.more最大的差别在于不会一次性加载整个文件,速度比较快!另外less具备翻页功能,可以向上/向下翻页! 语法 less [选项] [文件名] *选项* *使用说 ...

  10. 为什么要实践 A+ES & CQRS ?

    Wow : 基于 DDD & EventSourcing 的现代响应式 CQRS 架构微服务开发框架 中文文档 领域驱动 | 事件驱动 | 测试驱动 | 声明式设计 | 响应式编程 | 命令查 ...