2013-07-01 67 views
6

我無法發送電子郵件燒瓶郵件(http://pythonhosted.org/flask-mail/發送郵件與瓶郵件

from flask.ext.sqlalchemy import SQLAlchemy 
from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash 
from flask.ext.mail import Mail, Message 
import os 

# configuration 
DEBUG = True 
SECRET_KEY = 'hidden' 
USERNAME = 'secret' 
PASSWORD = 'secret' 

MAIL_SERVER='smtp.gmail.com' 
MAIL_PORT=587 
MAIL_USE_TLS = False 
MAIL_USE_SSL= True 
MAIL_USERNAME = '[email protected]' 
MAIL_PASSWORD = 'password' 

app = Flask(__name__) 
mail = Mail(app) 

@app.route('/minfo') 
def send_mail(): 
    msg = Message(
     'Hello', 
     sender='[email protected]', 
     recipients= 
     ['[email protected]']) 
    msg.body = "This is the email body" 
    mail.send(msg) 
    return "Sent" 

當我去/明覆,我得到

12:25:57 web.1 |  return socket.create_connection((port, host), timeout) 
12:25:57 web.1 | File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 571, in create_connection 
12:25:57 web.1 |  raise err 
12:25:57 web.1 | error: [Errno 61] Connection refused 

我不知道是什麼正在打破或如何解決它,谷歌搜索了幾個小時。有人遇到過這個?

回答

8
  1. 必須設置燒瓶配置:

    app = Flask(__name__) 
    app.config.from_object(__name__) 
    mail = Mail(app) 
    
  2. 使用465端口。

+0

謝謝!我有app.config.from_object(__ name__)下面的郵件=郵件(應用程序),並像你顯示的移動。現在我得到了發送,但從未收到電子郵件:/ – ArniReynir

+0

發現了,有一個錯字。所以問題解決使用你的解決方案謝謝! – ArniReynir

1

MAIL_USE_TLS = true,則使用587端口 MAIL_USE_SSL = true,則使用465端口

+0

這些端口值都爲我們設置了相應的標誌。不知道爲什麼這是downvoted。 – abathur

-1

我也有同樣的問題,我還使用燒瓶郵件,居然有人瓶,用戶包的一部分。我啓用了TLS端口,因爲我的郵件服務器使用的是TLS。我禁用SSL。我也將端口465更改爲587從我的應用程序代碼如下:

MAIL_PORT =   int(os.getenv('MAIL_PORT',   '587')) 
MAIL_USE_SSL =  int(os.getenv('MAIL_USE_SSL',   False)) 
MAIL_USE_TLS =  int(os.getenv('MAIL_USE_TLS',   True)) 

此更改解決了我的問題。

+0

這是否解決了問題,還是你說你還有問題? – Mogsdad

+0

我的問題在我的更改後得到解決 –

+0

您的答案中不清楚 - 也許您應該[編輯]說明。 – Mogsdad