1. 程式人生 > 實用技巧 >flask 之 eamil

flask 之 eamil

from flask import Flask
from flask_mail import Mail, Message



'''
    flask 傳送郵件 需要下載這個flask的擴充套件安裝包
    pip install Flask-Mail
    可以在app.config 中配置
'''

app = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.163.com'
app.config['MAIL_PORT'] = '25'
app.config['MAIL_USERNAME'] = '[email protected]'

#
# 這是163 郵箱的授權碼 不是密碼 app.config['MAIL_PASSWORD'] = 'xxxx' ''' 配置詳細 - MAIL_SERVER : eamil 的 smtp伺服器或是主機名,預設為localhost - MAIL_PORT : email 的 smtp伺服器埠 預設為25 - MAIL_USE_TLS:預設為False 預設禁用安全層加密 - MAIL_USE_SSL:預設為False 預設禁用安全套接字層加密 - MAIL_DEBUG:預設為app.debug 設定debug 支援 - MAIL_USERNAME:預設為無 使用者名稱 - MAIL_PASSWORD:預設為無 密碼 - MAIL_DEFAULT_SENDER:預設為無 傳送使用者 - MAIL_MAX_EMAILS:預設為無 最大發送郵件數 - MAIL_SUPPRESS_SEND:預設為app.testing - MAIL_ASCII_ATTACHMENTS:預設為False 如果設定成True ,符檔名將會轉成ASCII
''' ''' Mail 類 建立一個Mail 物件 (app) Mail 類方法 - send_message(*args, **kwargs) 傳送郵件的簡潔方法 不可以傳送附件 - send(message) 傳送郵件方法 ,引數是message 物件 可以傳送附件 - connect() 用於傳送大量郵件 ''' mail = Mail(app) @app.route('/') def index(): mail.send_message(subject='你好',
             # 發件人 sender
='[email protected]', body='你好,我是163郵箱, 恭喜你中獎了 一本Python 入門到放棄的一本書籍, 請注意查收', recipients=['[email protected]','[email protected]'], ) return '郵件傳送完成' ''' Message 類 Message 傳送附件 attach() 方法 ''' # http://127.0.0.1:5000/message @app.route('/message') def message(): try: msg = Message(subject='你好', sender='[email protected]', # body='你好,我是163郵箱, 恭喜你中獎了 一本Python 入門到放棄的一本書籍, 請注意查收', recipients=['[email protected]','[email protected]','[email protected]'], ) msg.body = '你好,我是163郵箱, 恭喜你中獎了 一本Python 入門到放棄的一本書籍, 請注意查收' # msg.html = '<h1>你好,我是163郵箱, 恭喜你中獎了 一本Python 入門到放棄的一本書籍, 請注意查收</h1>' # 新增附件 app flask 物件 with app.open_resource('6.jpg') as fp: msg.attach('6.jpg', 'image/jpg', fp.read()) mail.send(msg) # return msg return '郵件傳送完成' except: return '郵件傳送失敗' if __name__ == '__main__': app.run(debug=True) ''' class flask_mail.Message(subject ='',收件人= None,正文= None,html = None,sender = None,cc = None,bcc = None,附件= None,reply_to = None,date = None,charset = None,extra_headers = None,mail_options = None,rcpt_options = None ) 封裝電子郵件。 引數: subject –電子郵件主題標題 recipients –電子郵件地址列表 body –純文字訊息 html – HTML訊息 sender –電子郵件發件人地址,或預設為MAIL_DEFAULT_SENDER cc – CC清單 bcc -密件抄送列表 attachments –附件例項列表 reply_to –回覆地址 date –傳送日期 charset –郵件編碼 extra_headers –訊息的其他標題的字典 mail_options –在MAIL FROM命令中使用的ESMTP選項列表 rcpt_options – RCPT命令中使用的ESMTP選項的列表 '''