基于django服务 邮件发送自定义文字样式、邮件页面样式,发送html文件
1 | 基于qq的邮件发送服务:django.settings设置: |
1 2 3 4 5 6 | EMAIL_HOST_USER = 'xxxxx@qq.com' # 在这里填入您的QQ邮箱账号 EMAIL_PORT = 465 EMAIL_HOST_PASSWORD = 'xxxxxxx' # 请在这里填上您自己邮箱的授权码 EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com DEFAULT_FROM_EMAIL = EMAIL_HOST_USER EMAIL_USE_SSL = True |
1 |
django.views:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | from django.core.mail import EmailMultiAlternativesfrom pen_web.settings import devclass EmailPwd(APIView): def get( self , request): email_ = request.query_params.get( "email" ) logger.info(email_) email_tb = Userinfo.objects. filter (email = email_) if not email_tb: return HttpResponeseJson(code = 400 , message = '该邮箱并未注册,请直接注册登录。' ) # 从a-zA-Z0-9生成指定数量的随机字符 ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 6 )) msg_html = '''<!DOCTYPE html> <html> <meta charset="UTF-8"> <head> <title>密码找回</title> </head> <body> <div>尊敬的用户您好:</div> <p>要完成密码找回我们只需要确保这是您的电子邮件地址:</p> <span style="color:red">{email}</span>, <p>或者可能会要求你输入安全代码号:</p> <span style="color:blue;font-size:20px;">{code}</span> <p>请在您邮箱申请密码找回页输入:安全代码号和新密码。</p> </body> </html> ''' . format (email = email_, code = ran_str) try : #把文字样式单独放入html文件中,需要注意以下注释部分内容。 # context = { # 'email': str(email_), # 'code': str(ran_str), # # } # 发送的html模板的名称 # email_template_name = 'email_template.html'#如果是html文件的引入,html所在变量位置需要{{}}双大括号来包裹变量:<span style="color:red">{{email}}</span>, # t = loader.get_template(email_template_name) # html_content = t.render(context) html_content = msg_html msg = EmailMultiAlternatives( "密码找回" , html_content, dev.EMAIL_HOST_USER, [email_]) msg.attach_alternative(html_content, "text/html" ) msg.send() except Exception as e: return HttpResponeseJson(code = 400 , message = '邮件发送失败{e}' . format (e = e)) else : return HttpResponeseJson(message = '邮件发送成功,请登录邮箱获取安全代码号。' ) |
注意:
1,HttpResponeseJson是个人重新封装后的固定返回格式,请自行修改。
2,本实例也是基于django rest framework上书写。
1 | |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了