iT邦幫忙

0

伸縮自如的Flask [day 28] Flask-Mail

在有必要的時候,我們可能需要使用寄信來通知使用者、寄信給公會小姐、
把AI數據視覺化的資料寄給老闆。

而在你的flask app中,也可以含有寄信的功能,我們可以使用Flask-Mail這個套件:

https://pythonhosted.org/Flask-Mail/

安裝:

pip install Flask-Mail

而這裡的範例,使用gmail server來幫忙寄信。

首先在這裡開啟「低安全性應用程式存取權」:

https://support.google.com/accounts/answer/6010255?hl=zh-Hant#zippy=

再來,可以創立應用程式密碼,可以使用信箱也可以自訂義名稱:

https://support.google.com/accounts/answer/185833

from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)
mail= Mail(app)

app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = '@gmail.com'
app.config['MAIL_PASSWORD'] = ''
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
mail = Mail(app)

@app.route("/")
def index():
    msg = Message('Hello', sender = '@gmail.com', recipients = ['@gmail.com'])
    msg.body = "Hello Flask message sent from Flask-Mail"
    with app.open_resource("abc.jpg") as fp:
        msg.attach("abc.jpg", "image/jpg", fp.read())
    mail.send(msg)
    return "Sent"

if __name__ == '__main__':
   app.run(debug = True)

程式碼的部分,設定MAIL_USERNAME為你的帳號、MAIL_PASSWORD為剛才拿到的密碼、
寄信的部分主旨為Hello,而寄信人設定自己的信箱,收信人為list格式,可以寄送多名成員。

內文為"Hello Flask message sent from Flask-Mail",夾帶一張名稱為abc.jpg的圖片。

寄送完成,可以看到回傳成功的字串"Sent"。

影片版本:


尚未有邦友留言

立即登入留言