前言
简单介绍一下:`
- 本文是利用Python的web框架----django发送自定义邮件、当然稍微修改一下也可以直接用在原生python中(不知道咋形容了,就是直接自我定义成‘原生python语法’吧,哈哈哈),,,,
- 将邮件的样式设计成自己喜欢的样子,使得更加美观,易于查看
- 在这里要注意:QQ邮箱、网易邮箱等电子邮箱平台不支持内联js代码,所以自定义邮箱样式时,只能使用HTML和css组合
- 直接让你 ctrl+c —> ctrl+v 拿来用!!
如果你说“我能把js嵌入并功能正常使用!”那,,,额,,,嗯。。。
一、Django部分!
1.setting.py文件
首先配置你要用什么账号(邮箱服务平台发送邮件:QQ、网易,,,,等等)
注意:!!!!!!: 此处无论你使用哪一方平台的账号发送邮件,其接收方不受影响(简单说就是:你用QQ邮箱发送邮件,其收件人的地址是谷歌的还是网易的 等等都可以接收,不局限于固定邮箱平台!)
在setting.py
文件的最后加入这段代码:
#邮件相关配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'# 发送邮件配置
EMAIL_HOST = 'smtp.qq.com'# 服务器名称(此处是QQ的,网易163邮箱是:smtp.163.com)
EMAIL_PORT = 587# 服务端口
EMAIL_HOST_USER = '123456789@qq.com' # 填写自己邮箱账号,你将通过这个账号发送邮件给别人!
EMAIL_HOST_PASSWORD = 'abcdefghigklmn'# 在邮箱中设置的客户端授权密码(不知道在那的,登录自己邮箱,去设置里面找,实在不知道怎么获得,那就csdn或百度搜一下,都有且很详细)
EMAIL_FROM = 'L_Augety'# 收件人看到的发件人
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
EMAIL_USE_TLS = True #是否使用TLS安全传输协议
#EMAIL_USE_SSL = True #是否使用SSL加密,qq企业邮箱要求使用
2.views.py文件
在views.py
文件加入这段代码:
#首先先定义一个sendMessage的函数,方便后期调用
def sendMessage(email,userid):#发送邮件并返回验证码
# 生成验证码
import random
str1 = '0123456789'
rand_str = ''
for i in range(0, 6):
rand_str += str1[random.randrange(0, len(str1))]
# # 发送邮件:
try:
from django.template.loader import get_template
#自定义邮件内容模板将在下面 Email.html 文件中写!
template = get_template('Email.html')
#将 userid和rand_str两个参数传入 SendEmailCode1.html 文件中
#如果又有多个参数,可累加 即:{'userid': userid, 'rand_str': rand_str, 'key1':value1, 'key2':value2,.........}
html_content = template.render({'userid': userid, 'rand_str': rand_str})
from_send = EMAIL_HOST_USER
#sbj:就是人家收到你的邮件时,显示的标题,,
sbj = 'XXXXXXX什么什么系统/平台 注册验证码'
send_mail(subject=sbj, message=None,html_message=html_content, from_email=from_send, recipient_list=[email])
return yes
except:
return error
def SendEmilState(request):
#接收前端传过来的两个参数,即:userid、email
userid = request.POST.get('userid')
email= request.POST.get('email')
#判断是否发送成功
if sendMessage(userid,email)==yes:
'''
发送成功后,将要执行的其他代码
可写在此处~~~~~~~~~~~~~~~~
'''
print('发送成功')
result = {"code": 0, "msg": "邮件提醒发送成功"}
return JsonResponse(result, safe=False, json_dumps_params={"ensure_ascii": False})
else:
print('发送失败')
result = {"code": 1, "msg": "邮件提醒发送失败!"}
return JsonResponse(result, safe=False, json_dumps_params={"ensure_ascii": False})
二、自定义邮件样式
注意: 将css利用
<style> </style>
标签放在HTML文件里,最好不要用路径去引用,否则有可能会出错!!
1.自定义邮箱样式
首先创建一个Email.html
文件,用于写邮件模板。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>L_Augety电子邮件模板</title>
</head>
<body>
<style>
.panel {
width: 600px;
height: 300px;
margin: 0 auto;
background: ;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
border-radius: 5%;
}
</style>
<div class="panel">
<div style="text-align: center;padding-top: 5%;">
<div style="font-weight: bold;"> XXXXXXX什么什么系统/平台 注册验证码</div>
</div>
<div style="text-indent: 2em;padding-top: 5%;">用户: <span style="color: #0066FF;">{{userid}}</span> 您好:
<div style="padding-top: 5%;">欢迎注册‘XXXXXXX什么什么系统/平台’</div>
<div style="padding-top: 2%;">您的注册验证码:</div>
<div style="text-align: center;padding-bottom: 2%;">
<div style="font-size: 40px;font-weight: bold; color: #0000CC;">{{rand_str}}</div>
</div>
<div>验证码请妥善保管,请勿泄露,<span style="color: red;">有效期为5分钟</span></div>
</div>
</div>
</body>
<script >
</script>
</html>
三、展示
像这种的注册页面我就不提供啦,自己写吧,,
四、拓展
此时你已经成功完成‘自定义邮件样式’了,然后去编写你属于你自己的样式吧~~~~~
比如写成这样:
最后
注意:尽量将 css代码 于 html代码 放在一起!!!!其次,大部分邮箱平台对内联js语法都不支持!!,所以你99%的情况运行不了js代码!
有什么问题,评论或私信我哦~~~~
点赞,代码无bug!!!!!!!!!!!!!
·