美文网首页
[Django]在Django中发送邮件功能

[Django]在Django中发送邮件功能

作者: Franckisses | 来源:发表于2019-07-24 14:54 被阅读0次

一.为什么能实现邮件发送。

Django是python的一个比较强悍的框架。我们可以使用Django中自带的一个方法。send_email().这个方法。其实是对我们python自带的email模块进行了封装。具体的封装的在:

django >  core > mail > message 
源码赏析:
from email.header import Header
from email.message import Message
from email.mime.base import MIMEBase
from email.mime.message import MIMEMessage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import formatdate, getaddresses, parseaddr
........
后面的省略了,感兴趣的同学可以自己看看。

二.第一步设置。

在Django中我们发送邮件可以这样去实现。首先你要在settings.py中定义几个全局变量。

# 邮箱配置服务器地址
EMAIL_HOST = 'smtp.qq.com'
#该服务器所对应的端口
EMAIL_PORT = 25
# 发邮件的邮箱即登陆服务器的邮箱账号
EMAIL_HOST_USER = '123456789@qq.com'
# 邮箱中的授权密码
EMAIL_HOST_PASSWORD = '等会说'
# 是否加密传输
EMAIL_HOST_TLS = False
# 收件人看到的邮箱发件人
EMAIL_FROM = 'PYTHON<123456789@qq.com>'

刚才说到授权码,下面给大家展示授权码怎么获取。
1.首先需要登陆QQ邮箱(以QQ邮箱为例)


登陆QQ邮箱

2.开启smtp协议。获取授权码。

开启smtp协议
3.获取授权码。
发短信
4 .发完短信之后,就可以根据获得授权码填写到上面的等会说。此地的授权码不是之前的我们的QQ密码,而是独立生成的。

三.编写前端代码。

前端页面mail.html

<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="UTF-8">
        <title>这是邮件发送的页面</title>
</head>
<body>
<form action="/mail">
    <p>
        <input type="text" name="mail" method="POST">
    </p>
    <p>
        <input type="submit">
    </p>
    {% csrf_token %}
</form>
</body>
</html>

四.编写路由以及视图

#路由
urlpatterns = [
    url(r'^mail/$',EmailView.as_view())
]
 # 视图

from django.core.mail import send_mail
from django.views.generic.base import View

class EmailView(View):
    def get(self, request):
           return render(request,'mail.html')
    def post(self,request):
        mail = request.POST.get('mail','')
        if mail:
            email_title = '这是一个测试邮件'
            email_body = '恭喜你收到了测试邮件'
            send_status = send_mail(
                email_title,
                email_body,
                EMAIL_FROM,
                [mail])
            if send_status:
                return HttpResponse('发送成功')
        else:
            return HttpResponse('发送失败')

五.大功告成。

收工

相关文章

  • 2018-07-17

    发送邮件 django中内置了邮件发送功能,被定义在django.core.mail模块中,发送邮件需要使用SMT...

  • smtp服务器开启

    发送邮件 Django中内置了邮件发送功能,被定义在django.core.mail模块中。发送邮件需要使用SMT...

  • Django——发送邮件和缓存

    发送邮件 概述:Django 中内置了邮件发送功能,发送邮件需要使用 SMTP服务,常用的免费服务器有:163、1...

  • 使用django发送邮件

    django通过封装python的smtplib实现发送邮件功能。django 1.11官网翻译内容见:http:...

  • [Django]在Django中发送邮件功能

    一.为什么能实现邮件发送。 Django是python的一个比较强悍的框架。我们可以使用Django中自带的一个方...

  • email

    1. django 发送邮件 settings.py中配置发送邮件邮箱 使用send_mail方法发送邮件

  • Django 邮件发送功能

    django对smtplib这个这模块进行封装,使得它使用起来十分简单。django.core.mail就是dja...

  • django发送邮件与获取ip

    发送邮件 博客想做一个评论时收到收件的功能,方便得知最新动态,在django下简单配置下就能实现。 django获...

  • 在django中发送邮件

    在Django中发送邮件很简单,只需要使用django.core.mail中的send_mail函数即可实现。具体...

  • Django实现发送邮件功能

    最近用python写了官网的后台。官网的后台功能比较简单,一个多语言支持,一个联系我们,即给公司发邮件的功能。多语...

网友评论

      本文标题:[Django]在Django中发送邮件功能

      本文链接:https://www.haomeiwen.com/subject/hyjxrctx.html