基于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
  
posted @   乔小生1221  阅读(308)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示