中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
python測(cè)試開發(fā)django-28.發(fā)送郵件send_mail

前言

django發(fā)郵件的功能很簡(jiǎn)單,只需簡(jiǎn)單的配置即可,發(fā)郵件的代碼里面已經(jīng)封裝好了,調(diào)用send_mail()函數(shù)就可以了
實(shí)現(xiàn)多個(gè)郵件發(fā)送可以用send_mass_mail()函數(shù)

send_mail()函數(shù)

先導(dǎo)入send_mail函數(shù)from django.core.mail import send_mail,進(jìn)入源碼里面看看具體函數(shù)對(duì)應(yīng)的參數(shù)
subject,message,from_email 和recipient_list 這四個(gè)參數(shù)是必須的。

  • subject: 字符串,郵件標(biāo)題。

  • message: 字符串,郵件內(nèi)容。

  • from_email: 字符串,發(fā)件郵箱。

  • recipient_list: list列表,列表中每個(gè)成員都是一個(gè)郵箱地址,而且每個(gè)收件人都會(huì)在 “收件人/To:” 欄看到出現(xiàn)在recipient_list 中的其他收件人。

  • fail_silently: (可選)布爾值。為False 時(shí),send_mail 會(huì)拋出smtplib.SMTPException 異常。smtplib 文檔列出了所有可能的異常。這些異常都是  SMTPException  的子類。

  • auth_user:(可選)SMTP服務(wù)器的認(rèn)證用戶名。沒提供該參數(shù)的情況下,Django會(huì)使用EMAIL_HOST_USER 配置項(xiàng)的設(shè)置。

  • auth_password:(可選)SMTP服務(wù)器的認(rèn)證密碼,沒提供該參數(shù)的情況下,Django會(huì)使用EMAIL_HOST_PASSWORD  配置項(xiàng)的設(shè)置。

  • connection: (可選)發(fā)送郵件的后端。沒提供該參數(shù)的情況下,Django會(huì)使用默認(rèn)后端的實(shí)例。

  • html_message: (可選) send_mail方法獨(dú)有,可以比較簡(jiǎn)單地實(shí)現(xiàn)一個(gè)html文本的傳輸

def send_mail(subject, message, from_email, recipient_list,
fail_silently=False, auth_user=None, auth_password=None,
connection=None, html_message=None):
"""
Easy wrapper for sending a single message to a recipient list. All members
of the recipient list will see the other recipients in the 'To' field.

If auth_user is None, use the EMAIL_HOST_USER setting.
If auth_password is None, use the EMAIL_HOST_PASSWORD setting.

Note: The API for this method is frozen. New code wanting to extend the
functionality should use the EmailMessage class directly.
"""
connection = connection or get_connection(
username=auth_user,
password=auth_password,
fail_silently=fail_silently,
)
mail = EmailMultiAlternatives(subject, message, from_email, recipient_list, connection=connection)
if html_message:
mail.attach_alternative(html_message, 'text/html')

return mail.send()

settings.py配置

發(fā)送郵件之前先在setting.py配置文件里面配置相關(guān)的郵箱信息,比如我這里是用的QQ郵箱,使用SSL加密方式,需要授權(quán)碼登錄
(至于如何獲取授權(quán)碼,可以在QQ郵箱設(shè)置里面開啟,發(fā)送短信“配置郵件客戶端”到1069070069)

# settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

EMAIL_USE_SSL = True # SSL加密方式
EMAIL_HOST = 'smtp.qq.com' # 發(fā)送郵件的郵箱 的 SMTP服務(wù)器,這里用了163郵箱
EMAIL_PORT = 465 # SMTP服務(wù)器端口
EMAIL_HOST_USER = '283340479@qq.com' # 發(fā)件人
EMAIL_HOST_PASSWORD = '授權(quán)碼' # 密碼(這里使用的是授權(quán)碼)
EMAIL_FROM = 'yoyo<283340479@qq.com>' # 郵件顯示的發(fā)件人

如果是其它的企業(yè)郵箱,直接密碼登錄的話,使用TLS方式

EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.xx.com' # 如果是其它企業(yè)郵箱
EMAIL_PORT = 25
EMAIL_HOST_USER = 'xxx@xx.com' # 賬號(hào)
EMAIL_HOST_PASSWORD = '**********' # 密碼
EMAIL_FROM = 'yoyo<xx@xx.com>' # 郵件顯示的發(fā)件人

EMAIL_USE_SSL 和 EMAIL_USE_TLS 是互斥的,只能有一個(gè)為 True。

views和urls.py

在views.py里面寫個(gè)視圖函數(shù),調(diào)用發(fā)送郵件的功能

from django.http import HttpResponse
from django.core.mail import send_mail

def mail(request):
send_mail('Subject here', # 主題
'Here is the message.', # 正文
'283340479@qq.com', # 發(fā)件人
['xxxxx@qq.com'], # 收件人
fail_silently=False)
return HttpResponse('郵件發(fā)送成功,收不到就去垃圾箱找找吧!')

urls.py寫個(gè)訪問(wèn)地址觸發(fā)發(fā)郵件

from django.conf.urls import url
from hello import views

urlpatterns = [
# 新增用戶
url(r'^register/', views.register),
url(r'^login/', views.login),
url(r'^reset/', views.reset_psw),
url(r'^mail/', views.mail),
]

瀏覽器上訪問(wèn)http://localhost:8000/mail/后,就能收到郵件了

前面講的send_mail()函數(shù)只能發(fā)送一個(gè)郵件,如果想實(shí)現(xiàn)發(fā)送多個(gè)郵件,可以用send_mass_mail()函數(shù)

send_mass_mail函數(shù)

先倒入from django.core.mail import send_mass_mail查看對(duì)應(yīng)的源碼

def send_mass_mail(datatuple, fail_silently=False, auth_user=None,
auth_password=None, connection=None):
"""
給定tuple數(shù)據(jù)類型(subject,message,from_email,recipient_list),發(fā)送每封郵件到每個(gè)收件人列表。 返回發(fā)送的電子郵件數(shù)量。

如果from_email為None,請(qǐng)使用DEFAULT_FROM_EMAIL設(shè)置。
如果設(shè)置了auth_user和auth_password,請(qǐng)使用它們登錄。
如果auth_user為None,請(qǐng)使用EMAIL_HOST_USER設(shè)置。
如果auth_password為None,請(qǐng)使用EMAIL_HOST_PASSWORD設(shè)置。

注意:此方法的API已凍結(jié)。 想要擴(kuò)展的新代碼功能應(yīng)該直接使用EmailMessage類。
"""
connection = connection or get_connection(
username=auth_user,
password=auth_password,
fail_silently=fail_silently,
)
messages = [
EmailMessage(subject, message, sender, recipient, connection=connection)
for subject, message, sender, recipient in datatuple
]
return connection.send_messages(messages)

從上面介紹可以看出,需傳元祖類型的數(shù)據(jù),如果想實(shí)現(xiàn)更多的給你可以用EmailMessage類

發(fā)送多個(gè)郵件

多個(gè)郵件的配置信息放到一個(gè)元祖里面,傳給datatuple參數(shù),代碼如下

from django.http import HttpResponse
from django.core.mail import send_mail, send_mass_mail

# Create your views here.

def mass_mail(request):
'''發(fā)送多個(gè)郵件'''
message1 = ('Subject 1',
'Here is the message',
'2833404xx@qq.com', # 發(fā)件人
['xxx@xx.com']) # 收件人,多個(gè)收件人逗號(hào)隔開
message2 = ('Another Subject2',
'Here is another message',
'2833404xx@qq.com',
['xxx@xx.com'])
send_mass_mail((message1, message2),
fail_silently=False)
return HttpResponse('郵件發(fā)送成功,收不到就去垃圾箱找找吧!')

2019年《python3接口自動(dòng)化》課程3月17-4月14開課

主講老師:上海-悠悠

上課方式:QQ群視頻在線教學(xué)

上課時(shí)間:每周六、周日晚上20:30-22:30

報(bào)名費(fèi):1000

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Djano發(fā)送郵件
如何用Net::SMTP發(fā)送郵件
Nagios監(jiān)控之利用sendmail使用第三方SMTP服務(wù)發(fā)送郵件報(bào)警
CentOS 5 使用 Sendmail 架設(shè)郵件服務(wù)器
Django 發(fā)送郵件
php 郵件發(fā)送表單數(shù)據(jù) | 同路吧
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服