老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Flask中電子郵件的使用

很多Web應用需要在諸如用戶注冊、密碼找回等過程中,進行用戶身份的有效性認證。采用電子郵箱進行確認是一種常用的方式。Python標準庫smtplib可以實現發送電子郵件的功能,Flask框架的Flask-mail包裝了smtplib庫,擴展了對電子郵件發送的支持。

成都創新互聯于2013年創立,是專業互聯網技術服務公司,擁有項目網站制作、成都網站制作網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元渾南做網站,已為上家服務,為渾南各地企業和個人服務,聯系電話:18980820575

0x01 安裝Flask-mail

可以采用pip安裝Flask-mail:

pip install flask-mail1

0x02 初始化配置

創建email的藍本(app/__init__.py):

from app.email import email as blueprint_email
app.register_blueprint(blueprint_email,url_prefix='/email')12

在初始化文件中導入mail對象:

from flask_mail import Mail
mail=Mail(app)

Flask-mail可以連接SMTP服務器,并把郵件利用這個服務器發送出去。Flask-mail需要進行參數配置,常見參數如下:

序號參數默認值說明
1MAIL_SERVERlocalhostSMTP服務器主機或者IP地址
2MAIL_PORT25電子郵件服務器端口
3MAIL_USE_TLSFalse是否啟用傳輸層安全協議(TLS)
4MAIL_USE_SSLFalse是否啟用安全套接層協議(SSL)
5MAIL_USERNAMENone電子郵箱賬號用戶名
6MAIL_PASSWORDNone電子郵箱賬號密碼
7MAIL_DEBUGFalse是否啟動調試

config.py配置文件中設置(以126郵箱為例,需要開啟SMTP服務):

#郵件配置
MAIL_SERVER='smtp.126.com'
MAIL_PORT=25MAIL_USE_TLS=True
MAIL_USERNAME='***@126.com'
MAIL_PASSWORD='******'
MAIL_DEBUG=True1234567

0x03 發送郵件

完成初始化后,創建一個Message實例,包含需要發送郵件的信息(文件/app/email/views.py)。

#coding:utf-8
from flask import render_template,current_app
from app.email import email
from flask_mail import Message@email.route('/send/',methods=['POST','GET'])
def sendmail(content):
    #發送郵件
    msg=Message(u'郵件主題',sender='***@126.com',recipients=['***@qq.com'])
    msg.body=u'郵件內容'
    msg.html=u'

郵件html:{0}

'.format(content)              #獲取當前app對象     app=current_app._get_current_object()              with app.app_context():                 from app import mail         mail.send(msg)         return 'Send'

其中,sender是郵件的發送者,recipients包含了全部收件者的郵箱地址列表。

0x04 改進發送過程

我們可以發現,在發送郵件的過程中,會出現程序停滯現象,瀏覽器也會出現等待,為了避免這個問題,可以采用異步方式來發送郵件。封裝郵件發送函數,并啟動子線程來發送郵件(文件/app/email/sendMail.py):

#coding:utf-8
from flask_mail import Message
from flask import render_template,current_app
from threading import Thread

#發送郵箱的子線程類
class SendMailThread(Thread):
    def __init__(self,app,msg):
        super(SendMailThread,self).__init__()
        self.__app=app
        self.__msg=msg    #異步發送郵件
    def send_asyc_mail(self,app,msg):
        with app.app_context():            
            from app import mail
            mail.send(msg)    
   def run(self):
        #發送郵件
       self.send_asyc_mail(self.__app,self.__msg) 
       
       
#封裝郵件發送過程
# 參數:
   #  subject:郵件主題
   #  recv:收件郵箱地址
   #  template:郵件內容的模板
   #  kw:模板參數鍵值對列表
def send_mail(subject,recv,template,**kw):
     msg=Message(subject,sender='***@126.com',recipients=recv)
     msg.body=u'郵件內容'
     msg.html=render_template(template,**kw)    # 獲取當前app對象
     app=current_app._get_current_object()      # 子線程發送
     send=SendMailThread(app,msg)
     send.start()

/app/email/views.py中定義新的處理函數:

import sendMail
#異步發送郵件
@email.route('/asyc_send/',methods=['POST','GET'])
def sendAsycMail():
    subject=u'異步發送郵件測試'
    rec=['***@qq.com']
    tp='email/send.html'
    test='test'
    #異步發送郵件
    sendMail.send_mail(subject=subject,recv=rec,template=tp,test=test)
    return 'Asyc Send!!!'

上面將郵件內容放在模板中,這樣更具有擴展性。采用異步方式發送郵件,可以提高用戶體檢,發送過程也流暢了許多。

0x05 使用Celery異步發送

當然,有興趣的同學,可以使用celery實現異步發送。


當前文章:Flask中電子郵件的使用
URL鏈接:http://www.xueling.net.cn/article/peddcj.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 精品一区二区在线播放 | www一片黄 | 91?清视频 | 精品国产欧美另类一区 | 亚洲欧美中日韩 | 狠狠躁日日躁夜夜躁2020 | 亚洲精品区无码欧美日韩 | 99久久国产综合精品女不卡 | 最新国产在线播放 | 日本大尺码专区mv | 午夜小视频在线免费观看 | 久久精品草 | 最新黄色在线观看 | 波多野结衣与黑人AV | 超碰免费在线播放 | 黄色录像a | 国产91免费在线观看 | 妺妺窝人体色www在线观看 | 日日噜噜夜夜狠狠久久av小说 | a∨天堂亚洲区无码先锋影音 | 国产精品JIZZ在线观看无码 | 国产做A爱片久久毛片A片秋霞 | 熟妇人妻系列AV无码一区二区 | 日韩熟女精品一区二区三区 | 国产精品久久艹 | 国产一区二区免费在线观看 | 国产精品美女黄网 | 国产亚洲色婷婷久久99精品91 | 亚洲黄色录像片 | 色综合久久久久无码专区 | 成人嫩草 | 国产精品刮毛 | 亚洲国产精品VA在线观看黑人 | 国产精品88久久久久久妇女厕 | 蜜芽国内精品视频在线观看 | 亚洲国产精品久久无人区 | 日韩欧美色图 | 91精品激情在线?看最新更新 | 亚洲国产精品一区二区三区 | 亚洲国产视 | 国产精品粉嫩av |