python-Web-django-邮箱登陆

setting:

# 发送邮箱
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = '666666@163.com'

#EMAIL_HOST_PASSWORD = '666666'
EMAIL_HOST_PASSWORD = '666666'
EMAIL_USE_SSL = True

 

until:

import random
def range_num(num):
    # 定义一个种子,从这里面随机拿出一个值,可以是字母
    seeds = "1234567890"
    # 定义一个空列表,每次循环,将拿到的值,加入列表
    random_num = []
    # choice函数:每次从seeds拿一个值,加入列表
    for i in range(num):
        random_num.append(random.choice(seeds))
    # 将列表里的值,变成四位字符串
    return "" . join(random_num)

 

views:

from django.shortcuts import render,HttpResponse,redirect
from app01.models import *
from django.core.mail import send_mail
from my_pro import settings
import threading
import json
from app01.utils.function import range_num

def getpwd(request):
    '''忘记密码'''
    res = {'s':None,'info':None}
    if request.method == 'POST':
        ''''''
        try:
            username = request.POST.get('username')
            email = request.POST.get('email')
            member_obj = Member.objects.filter(member_name=username,member_email=email).first()
            if member_obj:
                '''发送邮件'''
                code = range_num(4)
                request.session['email_code'] = code
                liuyan = '用户{}获得密钥{}!如果非本人操作!请及时联系本站!'.format(username,code)
                tuple1 = ('邮箱密码查找信息:',
                          liuyan,
                          settings.EMAIL_HOST_USER,
                          ['666666@qq.com',])
                t = threading.Thread(target=send_mail,args=tuple1)
                t.start()
                print(liuyan)
                # send_mail('邮箱密码查找信息:',
                #           liuyan,
                #           settings.EMAIL_HOST_USER,
                #         ['666666@qq.com'])
                print(111)
                res['s'] = 1
                res['info'] = '邮箱发送成功!'
                return HttpResponse(json.dumps(res))
            else:
                res['s'] = 0
                res['info'] = '邮箱发送失败!'
                return HttpResponse(json.dumps(res))
        except EOFError as e:
            print(e)
            res['s'] = 0
            res['info'] = '输入错误'
            return HttpResponse(json.dumps(res))


    return render(request,'app01_get_pwd.html')

def repwd(request):
    '''更新密码'''
    res = {'s': None, 'info': None}
    if request.method == 'POST':
        ''''''
        try:
            username = request.POST.get('username')
            email = request.POST.get('email')
            pwd = request.POST.get('pwd')
            repwd = request.POST.get('repwd')
            if pwd == repwd:
                Member.objects.filter(member_name=username,member_email=email).first().update(member_pwd=pwd)
                res['s'] = 1
                res['info'] = '更新密码成功!'
                del request.session['email_code']
            else:
                res['s'] = 0
                res['info'] = '密码错误!'
        except:
            res['s'] = 0
            res['info'] = '输入错误1'
    return HttpResponse(json.dumps(res))

 

html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>忘记密码</title>
</head>
<body>
<a href="{% url 'app01:index' %}">首页</a>
<a href="{% url 'app01:login' %}">登陆页面</a>
<form action="#">
    {% csrf_token %}
    账号:<input type="text" name="username"><br>
    邮箱:<input type="text" name="email">
    <input type="button" value="发送邮件" id="sendemail"><br>
    <div class="maina">
    </div>

</form>

</body>
</html>
<script src="/static/js/jquery.min.js"></script>
<script src="/static/layer/layer.js"></script>
<script>

    $(document).on('click','#sendemail',function () {
        $.post('{% url 'app01:getpwd' %}', $('form').serialize(), function (data) {

            if (data['s'] == 1) {
                    layer.msg(data['info']);
                    // 更新密码页面
                    var html1 = "新密码:<input type='text' name='pwd'><br>确认密码:<input type='text' name='repwd'> <input type='button' value='更改密码'> ";
                    $(".maina").html(html1);
                } else {
                    //登陆失败
                    layer.msg(data['info']);
                }
                return false;
                },'json');
    });

    $(document).on('click','#repwd',function () {
        $.post('{% url 'app01:repwd' %}', $('form').serialize(), function (data) {

            if (data['s'] == 1) {
                    layer.msg(data['info']);
                // 跳转主页面
                    location.href="{% url 'app01:index' %}";
                } else {
                    //更改失败
                    layer.msg(data['info']);
                }
                return false;
                },'json');
    });
</script>

 

转载于:https://www.cnblogs.com/person1-0-1/p/11323231.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以给你一些建议吗?用Python Django发送电子邮件可以利用Django的内置模块,如django.core.mail来发送电子邮件。你可以参考官方文档中的指导:https://docs.djangoproject.com/en/2.2/topics/email/。此外,也可以使用第三方库,如Django-mailer和Django-mail-queue来发送邮件,这可以帮助您更容易地实现更多功能。 ### 回答2: Python的Django是一个强大的Web框架,可以方便地实现发送邮件的功能。Django提供了一个内置的邮件模块用于管理和发送电子邮件,可以通过简单的配置和调用就可以实现邮件的发送。 首先,需要在Django的settings.py文件中进行邮件配置。可以设置SMTP服务器的主机、端口、账号、密码等信息。例如: ```python EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.example.com' # SMTP服务器主机 EMAIL_PORT = 587 # SMTP服务器端口 EMAIL_HOST_USER = 'your_email@example.com' # 邮箱账号 EMAIL_HOST_PASSWORD = 'your_password' # 邮箱密码 EMAIL_USE_TLS = True # 启用TLS加密 DEFAULT_FROM_EMAIL = 'your_email@example.com' # 默认发件人 ``` 接下来,可以在Django的视图函数或模型方法中使用EmailMessage类来创建邮件对象,并通过send()方法发送邮件。例如: ```python from django.core.mail import EmailMessage def send_email(request): subject = '邮件主题' message = '邮件内容' from_email = 'your_email@example.com' # 发件人,可选项,如果不填则使用DEFAULT_FROM_EMAIL to_email = ['to_email@example.com'] # 收件人,可以是一个列表 cc_email = ['cc_email@example.com'] # 抄送人,可选项,可以是一个列表 email = EmailMessage(subject, message, from_email, to_email, cc=cc_email) email.send() ``` 通过调用EmailMessage类的构造函数,可以传入邮件的主题、内容、发件人、收件人和抄送人等信息。最后调用send()方法即可发送邮件。 此外,还可以设置附件、HTML内容、邮件头等更多参数,以满足不同的发送需求。 总结来说,Django提供了丰富的邮件管理功能,可以方便地处理邮件的发送和配置。使用Python的Django框架,我们可以轻松实现邮件发送功能,提升Web应用的用户体验。 ### 回答3: 在Python中使用Django发送邮件相对简单。首先,我们需要在settings.py文件中配置邮件设置。 在settings.py文件中,需要进行以下配置: 1. 设置邮件主机和端口:在EMAIL_HOST中设置邮件主机地址,例如"smtp.gmail.com",在EMAIL_PORT中设置邮件主机端口号,例如"587"。 2. 设置邮件认证信息:在EMAIL_HOST_USER中设置发件人的邮箱地址,例如"example@gmail.com",在EMAIL_HOST_PASSWORD中设置发件人的邮箱密码。 3. 设置邮件使用的协议:在EMAIL_USE_TLS中设置是否使用TLS(传输层安全)协议进行加密通信,一般情况下可以设置为True。 4. 设置邮件发送的默认地址:在DEFAULT_FROM_EMAIL中设置发送邮件的默认地址,例如"example@gmail.com"。 一旦配置完成,我们就可以在视图函数或其他需要发送邮件的地方使用Django提供的邮件模块进行邮件发送。下面是一个发送邮件的示例代码: ```python from django.core.mail import EmailMessage def send_email(request): email = EmailMessage( 'Hello', 'Body goes here', 'example@gmail.com', ['recipient1@example.com', 'recipient2@example.com'], ['bcc@example.com'], reply_to=['another@example.com'], headers={'Message-ID': 'foo'}, ) email.send() ``` 在上面的示例中,我们创建了一个EmailMessage对象,设置了邮件的主题、内容以及发送和接收地址等信息,并调用`send()`方法发送邮件。 需要注意的是,为了能够发送邮件,我们需要在服务器上安装邮件客户端,例如在Linux系统上可以使用`sudo apt-get install mailutils`命令安装`mailutils`软件。 综上所述,使用Django发送邮件可以通过配置settings.py文件以及使用邮件模块来实现,非常方便快捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值