Django 中發(fā)送郵件通知

前言

最近在做公司運(yùn)維平臺(tái)中一個(gè)有關(guān)服務(wù)器權(quán)限申請(qǐng)的 app,其中在申請(qǐng)進(jìn)度狀態(tài)被改變時(shí)需要郵件形式提醒有關(guān)人員及時(shí)對(duì)記錄進(jìn)行近一步操作,以推進(jìn)審核流程。

Django 中發(fā)送郵件

Django 中為我們提供了發(fā)送郵件的接口,在 django.core.mail 模塊中,是對(duì) Python smtplib 做了一層輕度的封裝,使其更易使用在 Django 項(xiàng)目中。

send_mail

Django 中最簡(jiǎn)單的發(fā)送郵件的方法是使用 django.core.mail.send_mail。

以下是4個(gè)必要參數(shù):
subject:字符串,郵件主題
message:字符串,郵件內(nèi)容
from_email:字符串,發(fā)件郵箱
recipient_list:字符串列表,收件人列表

可選參數(shù)(未包含全部)

fail_silently:一個(gè)布爾值(True 或 False),如果是 False,當(dāng) send_mail 失敗會(huì)引發(fā) smtplib.SMTPException 系列異常,所有可能出現(xiàn)的異常都屬于 smtplib.SMTPException 的子類。

auth_user:用于 smtp 服務(wù)器驗(yàn)證,如果不給定此參數(shù),則使用項(xiàng)目 setting.py 中設(shè)定的 EMAIL_HOST_USER 的值。

auth_password:用于 smtp 服務(wù)器驗(yàn)證,如果不給定此參數(shù),則使用項(xiàng)目 setting.py 中設(shè)定的 EMAIL_HOST_PASSWORD 的值。

總結(jié)

有了上面的知識(shí)就可以使用 Django 來(lái)發(fā)送簡(jiǎn)單的郵件給用戶了,當(dāng)然還有很多高階的功能,需要額外的參數(shù),或者是其他方法去實(shí)現(xiàn),會(huì)在日后需要的時(shí)候去深入的,最后放一段我項(xiàng)目中的 setting.py 設(shè)置,和在 view 中簡(jiǎn)單使用 send_mail 方法發(fā)送郵件的代碼片段。

File:project/setting.py
# 郵件部分設(shè)置

EMAIL_HOST = 'smtp.163.com' # smtp 地址(這里需要注意,如果你和我一樣使用 163 郵箱的話,默認(rèn) smtp 功能是關(guān)閉的,需要去設(shè)置開(kāi)啟,并生成一個(gè)一次性密碼用于連接 smtp 服務(wù))
EMAIL_HOST_USER = 'xxxxxxxxxx@163.com' # 用戶
EMAIL_HOST_PASSWORD = 'xxxxxxxxxx' # 密碼
EMAIL_SUBJECT_PREFIX = u'[美圖權(quán)限申請(qǐng)系統(tǒng)]' # 為郵件Subject-line前綴,默認(rèn)是'[django]'
EMAIL_USE_TLS = True # 與SMTP服務(wù)器通信時(shí),是否啟動(dòng)TLS鏈接(安全鏈接)。默認(rèn)是false
File:app/views.py
from django.core.mail import send_mail
from smtplib import SMTPException
......
......
try:
    send_mail(
        subject=u"xxxxxxxxxx", message=u"通知:xxxxxxxxxx",
        from_email='xxxxxxxxxx@163.COM', recipient_list=[mail_adder, ], fail_silently=False,
    )
except SMTPException, e:
    # 此處記錄日志
    # 返回相關(guān)錯(cuò)誤信息,例如:return HttpResponse(error)
最后編輯于
?著作權(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)容

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