2013-07-01 9 views
6

Ho problemi di invio e-mail con la boccetta-mail (http://pythonhosted.org/flask-mail/)L'invio di posta elettronica con la boccetta-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" 

Quando vado a/minfo ottengo

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 

Non ho idea di che cosa sta rompendosi o come ripararlo, è stato googling per ore. Qualcuno ha provato questo?

risposta

8
  1. È necessario impostare pallone config:

    app = Flask(__name__) 
    app.config.from_object(__name__) 
    mail = Mail(app) 
    
  2. Usa 465 porta.

+0

Grazie! Avevo app.config.from_object (__ name__) sotto mail = Mail (app) e mi sono trasferito come hai mostrato. Ora mi viene inviato ma non ho mai ricevuto l'email:/ – ArniReynir

+0

Scoperto, c'era un errore di battitura. Quindi problema risolto utilizzando la soluzione. Grazie! – ArniReynir

1

MAIL_USE_TLS = True quindi utilizzare 587 porta MAIL_USE_SSL = True quindi utilizzare 465 porta

+0

Questi valori di porta hanno funzionato entrambi con il rispettivo flag set. Non so perché questo è stato downvoted. – abathur

-1

Ho anche stesso problema e sono stato anche utilizzando Flask-Mail, in realtà era parte del pacchetto di Flask-User. Ho abilitato la porta TLS, dal momento che il mio server di posta utilizzava TLS. Disabilito SSL. Cambio anche la porta da 465 a 587 da Il codice della mia domanda è il seguente:

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)) 

Questo cambiamento ha risolto il mio problema.

+0

Questo ha risolto il problema o stai dicendo che hai ancora il problema? – Mogsdad

+0

il mio problema è stato risolto dopo le mie modifiche –

+0

Questo non è chiaro nella risposta - forse dovresti [editarlo] per dirlo. – Mogsdad

Problemi correlati