在有必要的時候,我們可能需要使用寄信來通知使用者、寄信給公會小姐、
把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"。
影片版本: