一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Django發送html郵件的方法

Django發送html郵件的方法

2020-07-07 10:32NavCat Python

這篇文章主要介紹了Django發送html郵件的方法,涉及Django框架操作郵件的相關技巧,需要的朋友可以參考下

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

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

我們常用的當然是通過send_mail發送郵件:

復制代碼 代碼如下:
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 這四個參數是必須的。

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

以下是一個簡單的事例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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,# 發件郵箱
  recipient_list=mail_list,
  fail_silently=False,
  auth_user=EMAIL_HOST_USER, # SMTP服務器的認證用戶名
  auth_password=EMAIL_HOST_PASSWORD, # SMTP服務器的認證用戶密碼
  connection=None
)

用過的人可能會發現,你在template.html中的標簽,并沒有通過瀏覽器的解析而顯示出來了。

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

?
1
2
3
4
5
6
7
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()

看,很簡單吧,那么現在我要稍稍的做一點點改動,我需要發送附件給收件人,只需要做一個簡單的修改即可:

?
1
2
3
4
5
6
7
8
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') # 添加附件發送
msg.send()

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from django.core.mail import EmailMultiAlternatives,get_connection
from django.template import Context, loader
conn = get_connection() # 返回當前使用的郵件后端的實例
conn.username = '[email protected]'# 更改用戶名
conn.password = 'my_email' # 更改密碼
conn.host = 'smtp.exmail.qq.com' # 設置郵件服務器
conn.open() # 打開連接
EMAIL_HOST_USER = '[email protected]'
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發送郵件
conn.close()# 發送完畢記得關閉連接

看來,也不是很難吧!

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

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


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

 

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本一道一区二区免费看 | 风间由美被义子中文字幕 | 特黄特色大片免费视频播放 | 色哟哟久久| 午夜神器老司机高清无码 | 日本乱中文字幕系列在线观看 | 日韩激情视频在线观看 | 北岛玲在线视频 | 免费超级乱淫播放手机版 | 久久免费观看视频 | 亚洲国产精品嫩草影院久久 | 手机看片国产免费现在观看 | 亚洲国产无线码在线观看 | 91久久综合 | 欧美巨胸 | 日本动漫啪啪动画片mv | 黄a 大片a v 永久免费 | 猛男强攻变sao货 | 国内精品一区二区三区东京 | 日本五十路六十30人8时间 | 日韩欧美不卡片 | sex5·性屋娱乐 | 青青国产在线观看 | 日韩一区三区 | 久久WWW免费人成一看片 | 狠狠色婷婷日日综合五月 | 日本中文字幕黑人借宿影片 | 黄瓜视频黄版 | 97自拍视频在线观看 | 久久久WWW免费人成精品 | 好男人资源免费观看 | bt7086新片速递亚洲最新合集 | 免费在线看a | 久久无码AV亚洲精品色午夜麻豆 | h肉动漫在线视频无修无遮挡 | 亚洲国产精品热久久 | 欧美午夜性春猛交bbb | 国产盗摄wc女厕所 | 亚洲 综合 自拍 精品 在线 | chinese国产人妖hd| hd在线观看免费高清视频 |