最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django發(fā)送html郵件的方法

 更新時間:2015年05月26日 11:29:28   作者:NavCat  
這篇文章主要介紹了Django發(fā)送html郵件的方法,涉及Django框架操作郵件的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了Django發(fā)送html郵件的方法。分享給大家供大家參考。具體如下:

在Django中,發(fā)送郵件非常的方便,一直沒有時間,今天來做一個小小的總結(jié)吧。

我們常用的當(dāng)然是通過send_mail發(fā)送郵件:

復(fù)制代碼 代碼如下:
send_mail(subject,message,from_email,recipient_list,fail_silently=False,auth_user=None,auth_password=None,connection=None)

subject,message,from_email 和recipient_list 這四個參數(shù)是必須的。

subject: 字符串,表示郵件標(biāo)題。
message: 字符串,表示郵件內(nèi)容。
from_email: 字符串,表示發(fā)件郵箱。
recipient_list: 字符串列表,列表中每個成員都是一個郵箱地址,而且每個收件人都會在 “收件人/To:” 欄看到出現(xiàn)在recipient_list 中的其他收件人。
fail_silently: (可選)布爾值。為False 時,send_mail 會拋出smtplib.SMTPException 異常。smtplib 文檔列出了所有可能的異常。這些異常都是SMTPException  的子類。
auth_user: (可選)SMTP服務(wù)器的認(rèn)證用戶名。沒提供該參數(shù)的情況下,Django會使用EMAIL_HOST_USER 配置項的設(shè)置。
auth_password: (可選)SMTP服務(wù)器的認(rèn)證密碼,沒提供該參數(shù)的情況下,Django會使用EMAIL_HOST_PASSWORD  配置項的設(shè)置。
connection: (可選)發(fā)送郵件的后端。沒提供該參數(shù)的情況下,Django會使用默認(rèn)后端的實(shí)例。

以下是一個簡單的事例:

from django.core.mail import send_mail 
from django.template import Context, loader 
context = { 
  'nickname': user.nickname, 
  'verify_url': verify_url, 
} 
email_template_name = 'template.html' 
t = loader.get_template(email_template_name) 
mail_list = [user.email, ] 
send_mail( 
  subject=title, 
  message=t.render(Context(context)), 
  from_email=EMAIL_HOST_USER,# 發(fā)件郵箱 
  recipient_list=mail_list, 
  fail_silently=False, 
  auth_user=EMAIL_HOST_USER, # SMTP服務(wù)器的認(rèn)證用戶名 
  auth_password=EMAIL_HOST_PASSWORD, # SMTP服務(wù)器的認(rèn)證用戶密碼 
  connection=None 
)

用過的人可能會發(fā)現(xiàn),你在template.html中的標(biāo)簽,并沒有通過瀏覽器的解析而顯示出來了。

怎么辦?我們要發(fā)送HTML郵件,Django當(dāng)然是為你提供了好的解決方案的,請看下面一段代碼:

from django.core.mail import EmailMultiAlternatives
from django.template import Context, loader
subject, from_email, to = title, EMAIL_HOST_USER, mail_list
html_content = t.render(Context(context))
msg = EmailMultiAlternatives(subject, html_content, from_email, to)
msg.attach_alternative(html_content, "text/html")
msg.send()

看,很簡單吧,那么現(xiàn)在我要稍稍的做一點(diǎn)點(diǎn)改動,我需要發(fā)送附件給收件人,只需要做一個簡單的修改即可:

from django.core.mail import EmailMultiAlternatives
from django.template import Context, loader
subject, from_email, to = title, EMAIL_HOST_USER, mail_list
html_content = t.render(Context(context))
msg = EmailMultiAlternatives(subject, html_content, from_email, to)
msg.attach_alternative(html_content, "text/html")
msg.attach_file(u'D:/My Documents/Python/doc/test.doc') # 添加附件發(fā)送
msg.send()

好了,到此為止,發(fā)送郵件已經(jīng)結(jié)束了。不過,此時,需求變了,我在自己的網(wǎng)站上配置了多個發(fā)送郵件的用戶名和密碼,現(xiàn)在需要用我指定的用戶名和密碼給用戶發(fā)送郵件,該怎么辦呢?請看下面的一段代碼:

from django.core.mail import EmailMultiAlternatives,get_connection
from django.template import Context, loader
conn = get_connection() # 返回當(dāng)前使用的郵件后端的實(shí)例
conn.username = 'my_email@qq.com'# 更改用戶名
conn.password = 'my_email' # 更改密碼
conn.host = 'smtp.exmail.qq.com' # 設(shè)置郵件服務(wù)器
conn.open() # 打開連接
EMAIL_HOST_USER = 'my_email@qq.com'
subject, from_email, to = title, EMAIL_HOST_USER, mail_list
html_content = t.render(Context(context))
msg = EmailMultiAlternatives(subject, html_content, from_email, to)
msg.attach_alternative(html_content, "text/html")
conn.send_messages([msg,]) # 我們用send_messages發(fā)送郵件 
conn.close()# 發(fā)送完畢記得關(guān)閉連接 

看來,也不是很難吧!

django.core.mail 的 get_connection()方法返回你當(dāng)前使用的郵件后端的實(shí)例。

復(fù)制代碼 代碼如下:
get_connection(backend=None,fail_silently=False,*args, **kwargs)

默認(rèn)情況下,對 get_connection() 的調(diào)用會返回一個郵件后端實(shí)例,具體是哪個后端由EMAIL_BACKEND 配置項決定。如果指定了``backend`` 參數(shù),就會對該后端進(jìn)行實(shí)例化。

友情提示:在發(fā)送的HTML郵件中包含圖片時,應(yīng)該制定可以通過http訪問的地址。如:http://www.baidu.com/medias/xxx.png

希望本文所述對大家的Python程序設(shè)計有所幫助。

相關(guān)文章

  • Python之——生成動態(tài)路由軌跡圖的實(shí)例

    Python之——生成動態(tài)路由軌跡圖的實(shí)例

    今天小編就為大家分享一篇Python之——生成動態(tài)路由軌跡圖的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python實(shí)現(xiàn)0到1之間的隨機(jī)數(shù)方式

    python實(shí)現(xiàn)0到1之間的隨機(jī)數(shù)方式

    這篇文章主要介紹了python實(shí)現(xiàn)0到1之間的隨機(jī)數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python用faker庫批量生成假數(shù)據(jù)

    python用faker庫批量生成假數(shù)據(jù)

    這篇文章主要介紹了python用faker庫批量生成假數(shù)據(jù),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python?OpenCV視頻文件相關(guān)操作教程

    Python?OpenCV視頻文件相關(guān)操作教程

    最近看了一些opencv的相關(guān)內(nèi)容,這里做一下記錄以及學(xué)習(xí)中的體會,和大家分享一下,下面這篇文章主要給大家介紹了關(guān)于Python?OpenCV視頻文件相關(guān)操作的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 簡單介紹Python虛擬環(huán)境及使用方法

    簡單介紹Python虛擬環(huán)境及使用方法

    Python的虛擬環(huán)境極大地方便了人們的生活.本文介紹了虛擬環(huán)境的基礎(chǔ)知識以及使用方法,文中有非常詳細(xì)的說明,需要的朋友可以參考下
    2021-06-06
  • Python單例模式的四種創(chuàng)建方式實(shí)例解析

    Python單例模式的四種創(chuàng)建方式實(shí)例解析

    這篇文章主要介紹了Python單例模式的四種創(chuàng)建方式實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 基于Python制作一個簡單的文章搜索工具

    基于Python制作一個簡單的文章搜索工具

    這篇文章主要為大家詳細(xì)介紹了如何基于Python制作一個簡單的文章搜索工具,都是一些基礎(chǔ)的應(yīng)用,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-05-05
  • bpython 功能強(qiáng)大的Python shell

    bpython 功能強(qiáng)大的Python shell

    bpython是一個不錯的Python解釋器的界面,本文帶著大家了解認(rèn)識一下bpython,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Python編程中閉包的變量作用域問題解析

    Python編程中閉包的變量作用域問題解析

    這篇文章主要介紹了Python編程中閉包的變量作用域問題解析,在學(xué)習(xí)Python的返回函數(shù)的時候,我發(fā)現(xiàn)里面涉及了幾個問題,在這里為大家分享講解下
    2021-10-10
  • python字符串判斷密碼強(qiáng)弱

    python字符串判斷密碼強(qiáng)弱

    這篇文章主要為大家詳細(xì)介紹了python字符串判斷密碼強(qiáng)弱,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03

最新評論

阿合奇县| 获嘉县| 芦溪县| 松江区| 白城市| 弥勒县| 辽阳县| 遂昌县| 农安县| 石棉县| 东乡族自治县| 祁门县| 大冶市| 安义县| 大连市| 永德县| 兰州市| 湖南省| 安图县| 枣庄市| 磴口县| 临沂市| 临泉县| 巴塘县| 麻城市| 茌平县| 延安市| 伊宁市| 华亭县| 临澧县| 万州区| 枣强县| 临武县| 北辰区| 牟定县| 巢湖市| 娱乐| 咸阳市| 多伦县| 苍梧县| 凤翔县|