一.為什么能實(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ā)送失敗')
五.大功告成。

收工