簡述
在大多數(shù)此類教程中都會不遺余力的介紹如何使用數(shù)據(jù)庫。今天我們對數(shù)據(jù)庫暫且不表,而是來關(guān)注另一個在web應(yīng)用中很重要的特性:如何推送郵件給用戶。
在某個輕量級應(yīng)用中我們可能會添加一個如下的郵件服務(wù)功能:當(dāng)用戶有了新的粉絲后,我們發(fā)送一封郵件通知用戶。有很多方法可以實現(xiàn)這個特性,而我們希望提供出一種可復(fù)用的通用框架來處理。
Flask-Mail介紹
對于我們來說是幸運的,現(xiàn)在已經(jīng)有很多外部插件來處理郵件,雖說不能百分百按照我們的想法去處理,但已經(jīng)相當(dāng)接近了。
在虛擬環(huán)境中安裝 Flask-Mail是相當(dāng)簡單的。Windows以外的用戶可以利用以下命令來安裝:
flask/bin/pip install flask-mail
Windows用戶的安裝稍有不同,因為Flask-Mail所使用的一些模塊不能再Windows系統(tǒng)上運行,你可以使用以下命令:
flask/Scripts/pip install --no-deps lamson chardet flask-mail
配置:
回想一下前文中單元測試部分的案例,我們通過添加配置支持了一個這樣的功能:當(dāng)應(yīng)用的某個版本測試出錯時可以郵件通知我們。從這個例子就可以看出如何配置使用郵件支持。
再次提醒大家,我們需要設(shè)置兩個方面的內(nèi)容:
郵件服務(wù)器信息 用戶郵箱地址如下正是前文中所用到的配置
# email serverMAIL_SERVER = 'your.mailserver.com'MAIL_PORT = 25MAIL_USE_TLS = FalseMAIL_USE_SSL = FalseMAIL_USERNAME = 'you'MAIL_PASSWORD = 'your-password' # administrator listADMINS = ['you@example.com']
其中并沒有設(shè)置切實可用的郵件服務(wù)器和郵箱?,F(xiàn)在我們通過一個例子來看如何使用gmail郵箱賬戶來發(fā)送郵件:
# email serverMAIL_SERVER = 'smtp.googlemail.com'MAIL_PORT = 465MAIL_USE_TLS = FalseMAIL_USE_SSL = TrueMAIL_USERNAME = 'your-gmail-username'MAIL_PASSWORD = 'your-gmail-password' # administrator listADMINS = ['your-gmail-username@gmail.com']
另外我們也可以初始化一個Mail對象來連接SMTP郵件服務(wù)器,發(fā)送郵件:
from flask.ext.mail import Mailmail = Mail(app)
發(fā)個郵件試試!
為了了解flask-mail如何工作的,我們可以從命令行發(fā)一封郵件看看。進(jìn)入python shell并執(zhí)行如下的腳本:
>>> from flask.ext.mail import Message>>> from app import mail>>> from config import ADMINS>>> msg = Message('test subject', sender = ADMINS[0], recipients = ADMINS)>>> msg.body = 'text body'>>> msg.html = '<b>HTML</b> body'>>> mail.send(msg)
新聞熱點
疑難解答
圖片精選