flask mail郵件傳送

2021-08-25 14:40:47 字數 1470 閱讀 3056

1.普通的郵件傳送

基本模板搭建

from flask_mail import mail, message

import os

# 郵件配置,一定要放在物件建立之前

# 郵箱伺服器(163.com qq.com 等)

# 使用者名稱

# 密碼

​# 可以將密碼設定在環境變數裡,可以在終端設定set 名字=值

# 建立傳送郵件的物件

def send():

# 建立郵件訊息物件

msg = message('賬戶啟用',

recipients=['接收的郵箱'],

#指定傳送者,也就是上面配置的使用者

# 設定郵件內容

msg.html = '恭喜你,中獎了!'

# 傳送郵件

mail.send(msg)

return '郵件傳送成功'

建立傳送郵件的mail物件

建立郵件訊息message物件

使用mail的send方法傳送郵件

2.優化:

# 封裝函式傳送郵件

def send_mail(subject, to, template, **kwargs):

# 處理郵件接收者

if isinstance(to, list):

recipients = to

elif isinstance(to, str):

recipients = to.split(',')

else:

raise exception('郵件接收者引數有誤')

# 建立郵件訊息物件

msg = message(subject=subject, recipients=recipients,

# 設定郵件內容

msg.html = render_template(template, **kwargs)

# 傳送郵件

mail.send(msg)

def send():

# 呼叫函式即可傳送郵件

send_mail('賬戶啟用', '接收郵箱', 'activate.html', name='可以寫使用者名稱')

return '郵件傳送成功'

from threading import thread

# 非同步傳送郵件

# 郵件傳送必須在程式上下文中進行

# 新的執行緒沒有上下文,因此需要手動建立上下文

mail.send(msg)  

在封裝好的函式基礎上,沒有直接傳送訊息內容,

# 傳送郵件:同步傳送,會阻塞執行

# mail.send(msg)

# 建立乙個執行緒,在新的執行緒中傳送郵件

# 啟動執行緒

thr.start()

# 返回執行緒

return thr

# 密碼,qq郵箱需要使用授權碼

# qq郵箱配置

# 加密傳輸

使用flask mail傳送郵件

mail server smtp.qq.com mail port 465 mail use tls false mail use ssl true 注意此處,很多人配置發不出去和這個是有關係的 mail password mail username qq.com usr bin env pytho...

Flask之flask mail郵件傳送

為什麼要使用flask mail傳送郵件?因為python自帶的email包比較底層,使用起來比較麻煩。安裝flask mail pip install flask mail配置 flask mail mail server 預設為 localhost 這裡我配置qq郵箱伺服器 smtp.qq.co...

如何使用flask mail傳送郵件

exts.py 如下 from flask mail import mail mail mail config.py 如下 伺服器ip位址 mail server smtp.qq.com 埠號 tls對應587,ssl對應465 mail port 587 mail use tls true mai...