国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中Django發(fā)送帶圖片和附件的郵件

2020-02-23 04:31:08
字體:
供稿:網(wǎng)友

最近需要做集團(tuán)的SRC系統(tǒng)。暫無安全研發(fā),所以只能找我這個小菜兼職開發(fā)。系統(tǒng)使用Django框架,在整個過程中,有許多奇特的需求。在某項需求中,需要給廠商用戶發(fā)送富文本郵件,漏洞詳情,這個折騰了一下,感覺略有收獲,所以記一篇隨筆。

首先我在網(wǎng)上搜索了一些資料,發(fā)現(xiàn)都是python通過smtplib發(fā)送,使用MIME格式來生成富文本郵件:傳送門

我想的是,使用Django框架,框架帶了郵件模塊,沒必要引入smtplib吧。我就想,向上文傳送門那樣,生成一個MIME文件,然后通過

 from django.core import mail mail.send_mail

這種方式把MIMEMultipart對象使用as_string()方法生成的文件當(dāng)做message發(fā)出去不就好了嗎。呃,有興趣的可以試一下。。我發(fā)出去了一堆字符串。。

好吧,失敗了,難道真的要把smtplib引進(jìn)來?

天無絕人之路,這個時候我看到了一句話:EmailMessage是Django封裝好的smtp。哦?還有這回事?好吧,嘗試一下看看源碼?跳轉(zhuǎn)至message.py

class EmailMessage(object):  """  A container for email information.  """  content_subtype = 'plain'  mixed_subtype = 'mixed'  encoding = None   # None => use settings default  def __init__(self, subject='', body='', from_email=None, to=None, bcc=None,         connection=None, attachments=None, headers=None, cc=None,         reply_to=None):    """    Initialize a single email message (which can be sent to multiple    recipients).    All strings used to create the message can be unicode strings    (or UTF-8 bytestrings). The SafeMIMEText class will handle any    necessary encoding conversions.    """

恩!大體知道了用法。

 msg = mail.EmailMessage('富文本郵件測試', html, from_mail, recipient_list)

就是這樣了。而且看message.py文件

if to:       if isinstance(to, six.string_types):        raise TypeError('"to" argument must be a list or tuple')      self.to = list(to)

看到raise的信息,明白了,我們傳給他的recipient_list應(yīng)該是元組或者列表

self.from_email = from_email or settings.DEFAULT_FROM_EMAIL

我們傳給他的就是Django settings.py文件里配置的郵箱,就是以下格式的:

# email config# 這是我們工程目錄下settings文件的配置EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'EMAIL_HOST_PASSWORD = 'xxxxxxxx'EMAIL_HOST_USER = 'xxxx@xxxx.xxxx'EMAIL_HOST = 'smtp.xxxx.com'EMAIL_PORT = port

好,到此為止,我們知道了這個類怎么用。我們看傳送門里的代碼,挑選比較重要的

msgRoot = MIMEMultipart('related')msgRoot['Subject'] = subjectmsgRoot['From'] = strFrommsgRoot['To'] = strTomsgText = MIMEText(plainText, 'plain', 'utf-8')msgAlternative.attach(msgText)#設(shè)定HTML信息msgText = MIMEText(htmlText, 'html', 'utf-8')msgAlternative.attach(msgText)            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 金华市| 木兰县| 阿克陶县| 靖边县| 新巴尔虎左旗| 清徐县| 宁明县| 江北区| 湖南省| 长治市| 青冈县| 盈江县| 博乐市| 阜平县| 屏山县| 织金县| 安化县| 嘉义县| 泸定县| 洮南市| 会理县| 西安市| 剑川县| 石泉县| 滁州市| 贺州市| 闻喜县| 桐柏县| 北流市| 卓尼县| 调兵山市| 鄂州市| 揭阳市| 乐业县| 浦东新区| 呼伦贝尔市| 延津县| 云南省| 剑河县| 德格县| 华坪县|