import smtplib
import os
from email.header import Header
from email.mime.text import MIMEText
def sendemail(host,usernames,verify):
# 发件人和收件人
sender = 'tdxxxxx@163.com'
# receiver = 'xxxxxx@qq.com'
receiver = 'xxxx.com'
# 所使用的用来发送邮件的SMTP服务器
smtpserver = 'smtp.163.com'
# 发送邮箱的用户名和授权码(不是登录邮箱的密码)
username = 'tdxxxxxxxx@163.com'
password = 'xxxx'
# 邮件主题
mail_title = '主题:LeapIn找回密码'
send_user = 'ttttt'
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("/Users/echo/Desktop/login/leapin-api/leapin/static/mail.html", "r", encoding="utf-8") as f1,open("%s.bak" % "/Users/echo/Desktop/login/leapin-api/leapin/static/mail.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
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, receiver, 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("1234566.com", "bbbbbbbbb", "wwww.baidu.com")
<!DOCTYPE html>
<head>
<title>Leapin-resetpassword</title>
<style>
.wrapper{
min-width: 500px;
width: 800px;
height: auto;
margin: 100px auto;
margin: 20vh auto;
background:rgba(255,255,255,1);
box-shadow:0px 4px 16px 0px rgba(217,217,217,1);
border-radius:16px;
overflow: hidden;
}
.header{
height:122px;
background:linear-gradient(180deg,rgba(34,87,191,1) 0%,rgba(34,87,191,1) 100%);
border-radius:2px;
text-align: center;
color:#fff;
line-height: 122px;
font-size: 40px;
text-align: center;
}
.content{
padding: 40px 60px 60px;
}
.content >div:nth-child(1){
height:50px;
font-size:36px;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(31,31,31,1);
line-height:50px;
text-align: center;
}
.content >div:nth-child(2){
font-size:24px;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(31,31,31,1);
line-height:33px;
margin: 40px 0 60px;
}
.content >div:nth-child(3){
text-align: center;
}
.content >div:nth-child(3) button{
width:260px;
height:56px;
background:rgba(34,87,191,1);
border-radius:4px;
color:#fff;
border: 0;
outline: none;
}
.footer{
padding: 30px 0;
margin: 0 60px;
border-top: 1px solid rgba(217,217,217,1);
text-align: center;
}
.footer p {
font-size:18px;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(31,31,31,1);
line-height:32px;
}
.footer div {
font-size:16px;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(122,132,153,1);
line-height:22px;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="header">
LeapIn
</div>
<div class="content">
<div>重置密码</div>
<div>
{userName} 您好! <br/>
您正在申请重置密码,请点击下方按钮进行重置。
</div>
<div>
<a target="_blank" href="reset_link">
<button>重置密码</button>
</a>
</div>
</div>
<div class="footer">
<P>领先的企业招聘解决方案 <br/>
让人才更与企业文化相配</P>
<div>{host}</div>
</div>
</div>
</body><!DOCTYPE html>