1. 程式人生 > >用flask開發個人部落格(24)—— flask中使用Flask_Mail傳送電子郵件

用flask開發個人部落格(24)—— flask中使用Flask_Mail傳送電子郵件

        flask中使用Flask-Mail提供對電子郵件的支援,下面將分步驟測試flask中傳送電子郵件的功能:

1 配置SMTP伺服器的資訊

        我們需要藉助flask程式例項app的config屬性來配置電子郵件的SMTP伺服器資訊,其中主要的配置選項包括伺服器的地址MAIL_SERVER\埠號MAIL_PORT\使用者名稱MAIL_USERNAME\密碼MAIL_PASSWORD.下面以QQ郵箱為例傳送電子郵件.

     import os

     #...

     app.config['MAIL_SERVER']='smtp.qq.com'

     app.config['MAIL_PORT']=587
     
     app.config['MAIL_USE_TLS']=True
    
     app.config['MAIL_USERNAME']=os.environ.get('MAIL_USERNAME')

     app.config['MAIL_PASSWORD']=os.environ.get('MAIL_PASSWORD')
        這裡我們將使用者名稱和密碼儲存在名為MAIL_USERNAME和MAIL_PASSWORD的環境變數中,然後設定相應的環境變數即可.注意app.config['MAIL_USE_TLS']=True這句程式碼,因為我們用的埠是587,為TLS(傳輸層安全協議)的安全埠,所以設定傳輸層安全協議生效.

2 建立電子郵件Mail例項

from flask_mail import Mail
mail=Mail(app)

3 配置所需要的環境變數

export [email protected]
export MAIL_PASSWORD=XXXXX

4 在python shell中傳送電子郵件

from flask.ext.mail import Message
from test import mail
msg=Message('My Subject',sender='[email protected]',recipients=['[email protected]'])
msg.body='text body'
msg.html='<b>HTML</b> body'
with app.app_context():
    mail.send(msg)
效果如圖:


克隆本專案:
git clone git@github.com:HymanLiuTS/flaskTs.git

獲取本文原始碼:
git checkout FL24