摘要:為什么要使用發(fā)送郵件因?yàn)樽詭У陌容^底層,使用起來比較麻煩。發(fā)送模板郵件歡迎你觀看此文章,您的郵箱賬號為這個(gè)程序在上述文件上進(jìn)行編寫給你發(fā)郵件啦還可以發(fā)送附件
為什么要使用flask-mail發(fā)送郵件?
因?yàn)閜ython自帶的email包比較底層,使用起來比較麻煩。
安裝Flask-Mail:
pip install flask-mail
配置 Flask-Mail
MAIL_SERVER : 默認(rèn)為 ‘localhost’ #這里我配置QQ郵箱服務(wù)器:smtp.qq.com MAIL_PORT : 默認(rèn)為 25 #QQ郵箱服務(wù)器端口:465 MAIL_USE_TLS : 默認(rèn)為 False #使用的是TLS協(xié)議,所以為True MAIL_USE_SSL : 默認(rèn)為 False MAIL_USERNAME : 默認(rèn)為 None #這里配置自己的QQ郵箱 MAIL_PASSWORD : 默認(rèn)為 None #這里的密碼不是郵箱密碼,是需要去開啟的客戶端授權(quán)密碼 MAIL_DEFAULT_SENDER : 默認(rèn)為 None #這里我配置自己的QQ郵箱 MAIL_MAX_EMAILS : 默認(rèn)為 None #一次性發(fā)郵件的最大數(shù)量,即recipients列表長度 MAIL_ASCII_ATTACHMENTS : 默認(rèn)為 False #文件名將會(huì)轉(zhuǎn)換成 ASCII 的。 當(dāng)文件名是以 UTF-8 編碼的時(shí)候,使用郵件轉(zhuǎn)發(fā)的時(shí)候會(huì)修改郵件內(nèi)容并且混淆 Content-Disposition 描述,這個(gè)時(shí)候 MAIL_ASCII_ATTACHMENTS 配置項(xiàng)是十分有用的
注冊 Mail
【app/__init__.py】
#和其他的擴(kuò)展一樣,我們要先注冊到app from flask import Flask from flask_mail import Mail app = Flask(__name__) mail = Mail() #測試時(shí)可以直接在Mail()中寫入app對象 mail.init_app(app) #這種方式是開發(fā)的時(shí)候常用的,因?yàn)槲覀円谄渌K中使用mail對象
發(fā)送簡單郵件
【app/e_mail.py】
from flask_mail import Message from . import mail def send_email(subject,to,content): message=Message(subject,sender=current_app.config["MAIL_DEFAULT_SENDER "],body=content,recipients=[to]) mail.send(message) if __name__ == "__main__": send_email("jim給你發(fā)郵件啦",[email protected],"嘿嘿,這是我使用flask-mail給你發(fā)送的郵件哦!")
當(dāng)然上面只是我們一個(gè)簡單的發(fā)郵件程序,我們還可以使用模板發(fā)送固定形式的數(shù)據(jù)。
發(fā)送模板郵件
【templates/mail.html】
歡迎你觀看此文章,您的郵箱賬號為:{{ to_mail }}
這個(gè)程序在上述文件上進(jìn)行編寫
from flask import render_template def send_template_data(subject,to): message=Message(subject,sender=current_app.config["MAIL_DEFAULT_SENDER "],recipients=[to]) message.html=render_template("mail.html",to_mail=to) mail.send(message) if __name__ == "__main__": send_email("jim給你發(fā)郵件啦",[email protected])
還可以發(fā)送附件
def send_template_data(subject,to): message=Message(subject,sender=current_app.config["MAIL_DEFAULT_SENDER "],recipients=[to]) with open("img.png") as f: message.attach(img.png,image/png,f.read()) mail.send(message)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42959.html
摘要:帶附件的郵件有時(shí)候,我們發(fā)郵件的時(shí)候需要添加附件,比如文檔和圖片等,這也很簡單,代碼如下郵件服務(wù)器地址郵件服務(wù)器端口啟用上面的代碼中,我們通過打開了本機(jī)的某張圖片,然后通過方法將附件內(nèi)容添加到對象。 前往本文博客 簡介 給用戶發(fā)送郵件是 Web 應(yīng)用中最常見的任務(wù)之一,比如用戶注冊,找回密碼等。Python 內(nèi)置了一個(gè) smtplib 的模塊,可以用來發(fā)送郵件,這里我們使用 Flask...
摘要:函數(shù)攜帶目的地址主題郵件體模板和一組關(guān)鍵字參數(shù)。許多擴(kuò)展操作是在假設(shè)有活動(dòng)的應(yīng)用程序和請求上下文的情況下進(jìn)行的。但是當(dāng)函數(shù)在一個(gè)不同的線程上執(zhí)行,應(yīng)用程序上下文需要人為地創(chuàng)建使用。例如,執(zhí)行函數(shù)可以將郵件發(fā)送到的任務(wù)隊(duì)列中。 許多類型的應(yīng)用程序都會(huì)在某些事件發(fā)生的時(shí)候通知用戶,常用的溝通方法就是電子郵件。盡管在Flask應(yīng)用程序中,可以使用Python標(biāo)準(zhǔn)庫中的smtplib包來發(fā)送電...
摘要:文件上傳郵件發(fā)送一原生文件上傳修改頭像提交文件上傳的視圖函數(shù)有文件上傳了拿到文件名稱圖片上傳保存的路徑使用和渲染文件上傳自定義一個(gè)文件上傳的表單類修改頭像文件不能為空該文件類型不允許上傳提交生成隨機(jī)的圖片名稱獲取圖片大小設(shè)置尺寸當(dāng)前縮放 文件上傳郵件發(fā)送 一、原生文件上傳 form.html 修改頭像 manage.py...
摘要:試想,在多線程服務(wù)器中,多個(gè)線程同時(shí)處理不同客戶端發(fā)送的不同請求時(shí),每個(gè)線程看到的對象必然不同。多線程服務(wù)器會(huì)創(chuàng)建一個(gè)線程池,再從線程池中選擇一個(gè)線程用于處理接收到的請求。 框架 Django flask flask是一個(gè)輕量的web開發(fā)應(yīng)用示例開發(fā)一個(gè)小應(yīng)用 from flask import Flask app = Flask(__name__) @app.route(/) d...
摘要:弄了好久終于,踩了很多坑,感覺自己好菜,提供我的參考在外面設(shè)置,如,注意沒有引號和空格郵箱設(shè)置賬號獲取授權(quán)碼,在外部傳遞安全如,注意沒有引號和空格發(fā)送者郵箱接收者郵箱,,注意沒有引號參考的一個(gè)作者的文章插件系列,還有廖雪峰的教程 弄了好久終于OK,踩了很多坑,感覺自己好菜,提供我的參考 # -*- coding: utf-8 -*- import os from flask impor...
閱讀 3936·2021-11-22 09:34
閱讀 1504·2021-11-04 16:10
閱讀 1736·2021-10-11 10:59
閱讀 3284·2019-08-30 15:44
閱讀 2048·2019-08-30 13:17
閱讀 3458·2019-08-30 11:05
閱讀 755·2019-08-29 14:02
閱讀 2629·2019-08-26 13:34