2017-10-08 245 views
0

我有一個簡單的CRUD Web應用程序在Python/Flask中設置,當一個特定的功能被激活(批准請求)我想發送一個電子郵件通知給用戶,但爲我試過的所有郵件都無法通過我的代碼發送。使用燒瓶郵件通過Gmail發送電子郵件

這裏是所有設置相關的環境變量,我的配置文件(配置對象的內部):

MAIL_SERVER = 'smtp.gmail.com' 
MAIL_PORT=465 
MAIL_USE_SSL=True 
MAIL_USERNAME = '**@gmail.com' 
MAIL_PASSWORD = '**' 

我也試圖在我的應用程序調用app.config.update(這些值)/ init .py文件。下面是當前的代碼這樣做

mail = Mail() 

def create_app(config_name): 
    app = Flask(__name__, instance_relative_config=True) 
    app.config.from_object(app_config[config_name]) 
    app.config.from_pyfile('./config.py') 
    app.config.update(
    MAIL_SERVER='smtp.gmail.com', 
    MAIL_PORT=465, 
    MAIL_USE_SSL=True, 
    MAIL_USE_TLS=False, 
    MAIL_USERNAME = '**@gmail.com', 
    MAIL_PASSWORD = '**') 

    mail.init_app(app) 

最後這裏是代碼,我居然試圖發送電子郵件:

msg = Message(html=html, sender='**@gmail.com', subject='Your Reservation for %s' % reservation.item.name, recipients=['**']) 
mail.send(msg) 

此外,目前失敗默默,我不知道如何甚至可以查看發生了什麼錯誤。任何幫助深表感謝!

+0

查看此刻更多幫助https://stackoverflow.com/a/17985896/7699045 –

+0

此外,如果您尚未這樣做,請確保您在Google帳戶設置中允許使用「安全性較低的應用程序」。 – BrettJ

+1

@BrettJ非常感謝!這確實是問題! – Wasdo

回答

1

我在評論中的建議確實是對這個問題的回答。

在Google帳戶設置中啓用「安全性較低的應用」是解決OP遇到的掛斷問題的必要步驟。來自Google支持頁面的This link將引導您瞭解如何啓用此選項。

0

我想,你應該將發送協議從我的項目

MAIL_SERVER='smtp.gmail.com', 
MAIL_PORT=587, 
MAIL_USE_TLS=True, 
MAIL_USERNAME = '**@gmail.com', 
MAIL_PASSWORD = '**' 

對於我這個作品非常好切換到TLS

這是樣品。