Django配置163网易邮箱,简单发送邮件

1.注册网易邮箱网易免费邮箱 - 你的专业电子邮局 (163.com)

2.点击右上角的”回到旧版“

3.点击 设置中 ”POP3/SMTP/IMAP“配置

4. 开启两个服务,并添加授权码,需要验证短信,一步一步添加

5..打开django根目录Setting.py配置文件:

填写自己的邮箱账号和授权码

EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 25
EMAIL_USE_TLS = True
# 这里替换自己的邮箱授权码和账号
EMAIL_HOST_USER = '182******51@163.com'
EMAIL_HOST_PASSWORD = 'FYXJ******ZKH'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

 6.写视图函数

源码:
from django.core.mail import send_mail
from django.shortcuts import render
from django.template import loader
from User.models import User


# 我用163邮箱做了一个密码找回
def find_password(request):
    if request.method == 'POST':
        # 这是由html表单提交过来需要查找密码的邮箱。
        email = request.POST.get('email')
        # 我利用对数据库的条件查找,查找存在该邮箱的User 对象,返回的是一个列表,所以默认选第一条.frist
        users = User.objects.filter(email=email).first()

        user = users.user  # 取这个对象的user,这边是账号
        password = users.userpw  # 取这个对象的userpw,这边是密码
        # 邮件的大标题
        subject = '项目名:某项目平台'
        # 渲染模板需要的数据,
        data = {
            'username': user,
            'active_url': password,
        }
        # 准备一个模板(html,邮件的样式/格式),渲染准备的数据,比如:每份邮件不同的收件人等
        html_mes = loader.get_template('index_find_password.html').render(data)
        # 自己发邮件的账号
        from_mail = '182*******51@163.com'
        # 发送的邮箱账号
        re_mail_list = [email]
        send_mail(subject=subject, message='wei', html_message=html_mes, from_email=from_mail,
                  recipient_list=re_mail_list)
        error_msg = '已发送您的邮箱,请注意查收'
        return render(request, "index_user_login.html", {
            'error_msg': error_msg,
        })

7.html邮件模板:

html模板源码:

<h2 style="color: black;font-weight: bold;">尊敬的:{{ username }},您好!</h2>
<br>
您的密码已找回:<br>
<br>
<p>您的密码在这里: <b style="color: #00aced">{{ active_url }}</b></p>
<p>
 请勿直接回复该邮件</p>
<p>
 请勿直接回复该邮件</p>
<p>
 请勿直接回复该邮件</p>
<p align="right">
21软件 吴**
    <br>
    此为系统邮件请勿回复
</p>

8.密码找回表单提交 

9.实验:

9.1输入邮箱账号

9.2 点击发送

9.3登录该qq邮箱验证

对比数据库:

!!!!!!!!!!!

本次实验未做数据库邮箱不存在的情况,如果输入不存在的邮箱,会报错不存在Users.user

!!!!!!如果需要做不存在的情况就加个判断就好了:

非常简单

完整源码:
from django.core.mail import send_mail
from django.shortcuts import render
from django.template import loader
from User.models import User
# 我用163邮箱做了一个密码找回
def find_password(request):
    if request.method == 'POST':
        # 这是由html表单提交过来需要查找密码的邮箱。
        email = request.POST.get('email')
        # 我利用对数据库的条件查找,查找存在该邮箱的User 对象,返回的是一个列表,所以默认选第一条.frist
        users = User.objects.filter(email=email).first()
        if users:
            # 存在的情况
            # 就将后面的所有代码考进来即可。
            user = users.user  # 取这个对象的user,这边是账号
            password = users.userpw  # 取这个对象的userpw,这边是密码
            # 邮件的大标题
            subject = '项目名:某项目平台'
            # 渲染模板需要的数据,
            data = {
                'username': user,
                'active_url': password,
            }
            # 准备一个模板(html,邮件的样式/格式),渲染准备的数据,比如:每份邮件不同的收件人等
            html_mes = loader.get_template('index_find_password.html').render(data)
            # 自己发邮件的账号
            from_mail = '182*******151@163.com'
            # 发送的邮箱账号
            re_mail_list = [email]
            send_mail(subject=subject, message='wei', html_message=html_mes, from_email=from_mail,
                      recipient_list=re_mail_list)
            error_msg = '已发送您的邮箱,请注意查收'
            return render(request, "index_user_login.html", {
                'error_msg': error_msg,
            })
        else:
            # 不存在的情况
            error_msg = '该邮箱不存在,请重试!'
            return render(request, "index_user_login.html", {
                'error_msg': error_msg,
            })

  • 31
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值