1. 程式人生 > >flask 非同步傳送郵件

flask 非同步傳送郵件

        msg = Message('qqq',recipients=['[email protected]'])
        msg.body = "order"
        msg.html = 'html'
        @copy_current_request_context
        def send_async_email(msg):           
                mail.send(msg)
        thr = Thread(target = send_async_email, args = [msg])
        thr.start()
網上看到的程式碼是沒有加@copy_current_request_context,新版本不加的話會出RuntimeError: working outside of application context的錯誤。經過測試直接執行程式可以傳送,但使用域名訪問沒有任何反應。經過多方面查詢。發現是uwsgi預設不支援子執行緒。加在配置檔案里加上enable-threads = true。這樣就可以傳送成功了。