[Django]在Django中發(fā)送郵件功能

一.為什么能實(shí)現(xiàn)郵件發(fā)送。

Django是python的一個(gè)比較強(qiáng)悍的框架。我們可以使用Django中自帶的一個(gè)方法。send_email().這個(gè)方法。其實(shí)是對(duì)我們python自帶的email模塊進(jìn)行了封裝。具體的封裝的在:

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
........
后面的省略了,感興趣的同學(xué)可以自己看看。

二.第一步設(shè)置。

在Django中我們發(fā)送郵件可以這樣去實(shí)現(xiàn)。首先你要在settings.py中定義幾個(gè)全局變量。

# 郵箱配置服務(wù)器地址
EMAIL_HOST = 'smtp.qq.com'
#該服務(wù)器所對(duì)應(yīng)的端口
EMAIL_PORT = 25
# 發(fā)郵件的郵箱即登陸服務(wù)器的郵箱賬號(hào)
EMAIL_HOST_USER = '123456789@qq.com'
# 郵箱中的授權(quán)密碼
EMAIL_HOST_PASSWORD = '等會(huì)說(shuō)'
# 是否加密傳輸
EMAIL_HOST_TLS = False
# 收件人看到的郵箱發(fā)件人
EMAIL_FROM = 'PYTHON<123456789@qq.com>'

剛才說(shuō)到授權(quán)碼,下面給大家展示授權(quán)碼怎么獲取。
1.首先需要登陸QQ郵箱(以QQ郵箱為例)


登陸QQ郵箱

2.開(kāi)啟smtp協(xié)議。獲取授權(quán)碼。

開(kāi)啟smtp協(xié)議

3.獲取授權(quán)碼。
發(fā)短信

4 .發(fā)完短信之后,就可以根據(jù)獲得授權(quán)碼填寫(xiě)到上面的等會(huì)說(shuō)。此地的授權(quán)碼不是之前的我們的QQ密碼,而是獨(dú)立生成的。

三.編寫(xiě)前端代碼。

前端頁(yè)面mail.html

<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="UTF-8">
        <title>這是郵件發(fā)送的頁(yè)面</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>

四.編寫(xiě)路由以及視圖

#路由
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 = '這是一個(gè)測(cè)試郵件'
            email_body = '恭喜你收到了測(cè)試郵件'
            send_status = send_mail(
                email_title,
                email_body,
                EMAIL_FROM,
                [mail])
            if send_status:
                return HttpResponse('發(fā)送成功')
        else:
            return HttpResponse('發(fā)送失敗')

五.大功告成。

收工
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Django 官方文檔 發(fā)送email 官網(wǎng)地址:[https://docs.djangoproject.com/...
    學(xué)以致用123閱讀 2,401評(píng)論 0 2
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    小邁克閱讀 3,120評(píng)論 1 3
  • django通過(guò)封裝python的smtplib實(shí)現(xiàn)發(fā)送郵件功能。django 1.11官網(wǎng)翻譯內(nèi)容見(jiàn):http:...
    學(xué)以致用123閱讀 4,105評(píng)論 0 4
  • 邁入職場(chǎng)的第一步是:找工作。 找工作的第一個(gè)問(wèn)題是:這玩意兒怎么找,第二個(gè)問(wèn)題是:第一份工作怎么選。 一小伙兒應(yīng)聘...
    明哥聊求職閱讀 513評(píng)論 0 2
  • 的??逅故且粋€(gè)歌手,他一直在,各地。在。也結(jié)交了很多不錯(cuò)的朋友。后來(lái)卡洛斯發(fā)現(xiàn)自己更適合一家,而不是唱歌。你講那...
    蘇菲親子閱讀 210評(píng)論 0 0

友情鏈接更多精彩內(nèi)容