日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python smtp郵件發送模塊用法教程

瀏覽:134日期:2022-07-21 13:02:34

在Python中已經內置了一個smtp郵件發送模塊,Django在此基礎上進行了簡單地封裝,讓我們在Django環境中可以更方便更靈活的發送郵件。

所有的功能都在django.core.mail中。

一、快速上手

兩行就可以搞定一封郵件:

from django.core.mail import send_mailsend_mail( ’Subject here’, ’Here is the message.’, ’from@example.com’, [’to@example.com’], fail_silently=False,)

導入功能模塊,然后發送郵件,so easy!

默認情況下,使用配置文件中的EMAIL_HOST和EMAIL_PORT設置SMTP服務器主機和端口,EMAIL_HOST_USER和EMAIL_HOST_PASSWORD是用戶名和密碼。如果設置了EMAIL_USE_TLS和EMAIL_USE_SSL,它們將控制是否使用相應的加密鏈接。

二、單發 send_mail()

方法原型:send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None)[source]

讓我們來了解一下send_mail()方法,它接收一系列參數,其中的subject、message、from_email和recipient_list參數是必須的,其它的可選。

subject:郵件主題。字符串。 message:郵件具體內容。字符串。 from_email:郵件發送者。字符串。 recipient_list:收件人。一個由郵箱地址組成的字符串列表。recipient_list中的每一個成員都會在郵件信息的“To:”區域看到其它成員。 fail_silently: 一個布爾值。如果它是False,send_mail發送失敗時,將會引發一個smtplib.SMTPException異常。 auth_user: 可選的用戶名用來驗證SMTP服務器,如果你要特別指定使用哪個郵箱帳號,就指定這個參數。如果沒有提供這個值,Django將會使用settings中EMAIL_HOST_USER的值。如果兩者都不提供,那你還發什么??? auth_password: 可選的密碼用來驗證SMTP服務器。如果沒有提供這個值,Django 將會使用settings中EMAIL_HOST_PASSWORD的值。和上面那個參數是一家的。 connection: 可選的用來發送郵件的電子郵件后端。 html_message: 如果提供了html_message,可以發送帶HTML代碼的郵件。 send_mail()方法返回值將是成功發送出去的郵件數量(只會是0或1,因為它只能發送一封郵件)。

三、群發 send_mass_mail()

方法原型:send_mass_mail(datatuple,fail_silently = False,auth_user = None,auth_password = None ,connection = None)[source]

send_mass_mail()用來處理大批量郵件任務,也就是所謂的群發。

它的參數中,datatuple是必需參數,接收一個元組,元組的每個元素的格式如下:

(subject, message, from_email, recipient_list)

上面四個字段的意義與send_mail()中的相同。

例如,以下代碼將向兩組不同的收件人發送兩個不同的消息;但是,只能打開一個到郵件服務器的連接:

message1 = (’Subject here’, ’Here is the message’, ’from@example.com’, [’first@example.com’, ’other@example.com’])message2 = (’Another Subject’, ’Here is another message’, ’from@example.com’, [’second@test.com’])send_mass_mail((message1, message2), fail_silently=False)

send_mass_mail()方法的返回值是成功發送的郵件數量。

使用send_mail()方法時,每調用一次,它會和SMTP服務器建立一次連接,也就是發一次連一次,效率很低。而send_mass_mail(),則只建立一次鏈接,就將所有的郵件都發送出去,效率比較高。

四、防止頭部注入攻擊

有時候,我們要根據用戶表單的輸入來構造電子郵件,這就存在頭部注入攻擊的風險,Django給我們提供了一定的防范能力,但是更多時候,還需要你自己編寫安全防范代碼。

下面是一個例子,接收用戶輸入的主題、郵件內容和發送方,將郵件發送到系統管理員:

from django.core.mail import send_mail, BadHeaderErrorfrom django.http import HttpResponse, HttpResponseRedirectdef send_email(request): subject = request.POST.get(’subject’, ’’) message = request.POST.get(’message’, ’’) from_email = request.POST.get(’from_email’, ’’) if subject and message and from_email: try: send_mail(subject, message, from_email, [’admin@example.com’]) except BadHeaderError: return HttpResponse(’Invalid header found.’) return HttpResponseRedirect(’/contact/thanks/’) else: # In reality we’d use a form class # to get proper validation errors. return HttpResponse(’Make sure all fields are entered and valid.’)

如果檢查到用戶的輸入帶有頭部注入攻擊的可能性,會彈出BadHeaderError異常。

五、發送多媒體郵件

默認情況下,發送的郵件都是純文本格式的。但有時候我們希望能在郵件里帶一些超級鏈接、圖片,甚至視頻和JS動作。

Django為我們提供了一個EmailMultiAlternatives類,可以同時發送文本和HTML內容,下面是個范例,我們照著寫就行:

from django.core.mail import EmailMultiAlternativessubject, from_email, to = ’hello’, ’from@example.com’, ’to@example.com’text_content = ’This is an important message.’html_content = ’<p>This is an <strong>important</strong> message.</p>’msg = EmailMultiAlternatives(subject, text_content, from_email, [to])msg.attach_alternative(html_content, 'text/html')msg.send()

需要提醒的是,接收方的郵件服務商不一定支持多媒體郵件,也許是為了安全,也許是別的原因。為了保證你的郵件內容能被閱讀,請務必同時發送純文本郵件。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩午夜免费| 国际精品欧美精品| 韩国精品主播一区二区在线观看 | 亚洲黄色中文字幕| 日韩av在线中文字幕| 精品72久久久久中文字幕| 国产中文字幕一区二区三区| 国产香蕉精品| 精品视频在线你懂得| jizzjizz中国精品麻豆| 高潮一区二区| 欧美日韩在线播放视频| 婷婷亚洲五月色综合| 美女久久一区| 97成人超碰| 精品一级视频| 久久国产欧美| 巨乳诱惑日韩免费av| 日本不卡视频一二三区| 久久不见久久见免费视频7| 国产成人精品一区二区三区视频| 成人日韩精品| 欧美 日韩 国产精品免费观看| 亚洲福利精品| 亚洲欧美日本国产| 卡一精品卡二卡三网站乱码| 91tv亚洲精品香蕉国产一区| 亚洲综合精品四区| 911亚洲精品| av在线资源| 丝袜亚洲另类欧美| 国产精品免费不| 日韩精品麻豆| 亚洲久久视频| 精品美女在线视频| 91精品观看| 欧美午夜三级| 成人在线超碰| 99国产成+人+综合+亚洲欧美| 日韩成人精品一区二区三区| 国产精品久久久久久久免费观看| 亚洲福利久久| 国产欧美一区二区精品久久久 | 伊人精品在线| 日韩精品第一| 亚洲黄色免费av| 石原莉奈在线亚洲二区| 国产精品www.| 亚洲激情偷拍| 免费在线观看一区| 99国产精品久久久久久久| 国产精品欧美日韩一区| 亚洲成人精品| 97久久精品| 日韩一区二区三区在线免费观看| 中文精品电影| 日韩欧美另类一区二区| 日韩精品中文字幕一区二区| 日本美女一区| 午夜视频一区二区在线观看| av免费不卡国产观看| 亚洲色图国产| 久久一区二区三区喷水| 国产欧美日韩在线一区二区| 三级小说欧洲区亚洲区| 日韩高清在线不卡| 欧美日韩激情| 国产精品白丝一区二区三区| 亚洲一区二区免费看| 精品国产鲁一鲁****| 亚洲一级大片| 三级小说欧洲区亚洲区| 国产精品一页| 久久亚洲国产精品一区二区| 成人在线超碰| 日韩精品一级| 伊人久久婷婷| 日韩欧美一区免费| 久久99青青| 四虎国产精品免费久久| 激情久久五月| 精品国产精品国产偷麻豆 | 国产精品色网| 日产精品一区| 国产精品高清一区二区| 自拍自偷一区二区三区| 欧美成人亚洲| 精品视频一区二区三区在线观看| 亚洲美洲欧洲综合国产一区| 国产一区二区三区日韩精品| 7777精品| 亚洲精品一区二区在线播放∴| 欧美日韩中文一区二区| 成人一区而且| 久久超级碰碰| 日本欧美久久久久免费播放网| 国产模特精品视频久久久久| 999国产精品视频| 国产在线观看www| 精品伊人久久| 国产精品久久久久久久久久齐齐 | 美女精品在线观看| 91精品亚洲| 日本蜜桃在线观看视频| 久久久免费人体| 久久不见久久见中文字幕免费| 97久久亚洲| 日本少妇一区二区| 日韩精品一区二区三区av| 中文一区一区三区免费在线观| 中文亚洲欧美| 亚洲视频www| 亚洲精品一二三区区别| 欧美日韩一二三四| 国户精品久久久久久久久久久不卡| av高清一区| 成人在线网站| 欧美一级鲁丝片| 久久国产电影| 免费av一区| 夜夜精品视频| 亚洲另类av| 日本一区二区三区视频在线看| 日韩精品国产欧美| 国产欧美欧美| 精品亚洲成人| 樱桃视频成人在线观看| 伊人久久高清| 91精品精品| 国产视频一区三区| 亚洲欧美日韩视频二区| 亚洲婷婷丁香| 中文字幕亚洲精品乱码| 日韩不卡一区二区| 国产精品草草| 亚洲欧洲高清| 偷拍欧美精品| 亚洲精品黄色| 国产九一精品| 日韩一区自拍| 2023国产精品久久久精品双| 日韩精品一区第一页| 日韩欧美美女在线观看| 日本视频一区二区| 久久精品一区二区国产| 精品免费视频| 亚洲欧美综合| 亚洲中午字幕| 欧美一区激情| 福利一区和二区| 欧美91福利在线观看| 蜜臀91精品一区二区三区| 日韩国产欧美在线播放| 美女久久久久久 | 久久精品日韩欧美| 播放一区二区| 美女日韩在线中文字幕| 欧美亚洲三级| 日韩欧美一区二区三区免费观看| 欧美福利一区| 日本午夜精品一区二区三区电影 | 国产精品久久久久久久免费软件| 福利视频一区| 91精品电影| 91大神在线观看线路一区| 国产成人黄色| 亚洲一级在线| 老色鬼精品视频在线观看播放| 99久久亚洲精品蜜臀| 蜜桃免费网站一区二区三区 | 欧美一区二区三区免费看| 精品国产乱码久久久久久樱花 | 国产伦精品一区二区三区在线播放 | 四虎精品永久免费| 国语对白精品一区二区| 国产亚洲一区在线| 久久精品一区二区国产| 在线一区免费观看| 精品一区二区三区在线观看视频 | 国产亚洲高清一区| 激情欧美一区| 国产欧美日韩一级| 欧美.日韩.国产.一区.二区| 国产探花在线精品| av亚洲免费| 国产精品红桃| 国产精品毛片| 国产伦久视频在线观看| 亚洲三级精品| 91亚洲国产| 日本不卡一二三区黄网| 日本蜜桃在线观看视频| 日本成人在线不卡视频| 久久中文字幕av一区二区不卡| 日韩高清欧美激情| 激情综合亚洲| 国产一区二区三区国产精品| 久热精品在线| 日韩另类视频| 久久av超碰|