Miguel GrinbergのFlaskyに基づいて小さなWebアプリケーションを作成しています。私はユーザー確認メールに全く同じコードを使用します。 DEBUG = True(Flaskの場合)は、すべてが魅力のように機能します。 DEBUGは=、しかし、私は次のようなエラーがFalseを取得する場合:DEBUG = Falseの場合Flaskメールはメールを送信しません
Traceback (most recent call last):
File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
self.run()
File "/usr/lib/python3.4/threading.py", line 868, in run
self._target(*self._args, **self._kwargs)
File "/home/fabee/code/rowbot/app/email.py", line 9, in send_async_email
mail.send(msg)
File "/usr/local/lib/python3.4/dist-packages/flask_mail.py", line 491, in send
with self.connect() as connection:
File "/usr/local/lib/python3.4/dist-packages/flask_mail.py", line 144, in __enter__
self.host = self.configure_host()
File "/usr/local/lib/python3.4/dist-packages/flask_mail.py", line 163, in configure_host
host.starttls()
File "/usr/lib/python3.4/smtplib.py", line 671, in starttls
self.ehlo_or_helo_if_needed()
File "/usr/lib/python3.4/smtplib.py", line 569, in ehlo_or_helo_if_needed
if not (200 <= self.ehlo()[0] <= 299):
File "/usr/lib/python3.4/smtplib.py", line 423, in ehlo
self.putcmd(self.ehlo_msg, name or self.local_hostname)
File "/usr/lib/python3.4/smtplib.py", line 349, in putcmd
self.send(str)
File "/usr/lib/python3.4/smtplib.py", line 341, in send
raise SMTPServerDisconnected('please run connect() first')
smtplib.SMTPServerDisconnected: please run connect() first
私は本当に真のDEBUG =が本当に意味を理解していないので、私はデバッグするこれは本当に難しい見つけます。それについてのヒントや助けは大変ありがたいです。
編集:
bootstrap = Bootstrap()
mail = Mail()
moment = Moment()
db = SQLAlchemy()
pagedown = PageDown()
login_manager = LoginManager()
login_manager.session_protection = 'strong'
login_manager.login_view = 'auth.login'
def create_app(config_name):
app = Flask(__name__)
QRcode(app)
app.config.from_object(config[config_name])
config[config_name].init_app(app)
bootstrap.init_app(app)
mail.init_app(app)
moment.init_app(app)
db.init_app(app)
login_manager.init_app(app)
pagedown.init_app(app)
if not app.debug and not app.testing and not app.config['SSL_DISABLE']:
from flask.ext.sslify import SSLify
sslify = SSLify(app)
from .main import main as main_blueprint
app.register_blueprint(main_blueprint)
from .auth import auth as auth_blueprint
app.register_blueprint(auth_blueprint, url_prefix='/auth')
...
return app
メールこれは、次のとおりです。これはmail
が作成されるコードである
from threading import Thread
from flask import current_app, render_template
from flask.ext.mail import Message
from . import mail
def send_async_email(app, msg):
with app.app_context():
mail.send(msg)
def send_email(to, subject, template, **kwargs):
app = current_app._get_current_object()
msg = Message(app.config['MAIL_SUBJECT_PREFIX'] + ' ' + subject,
sender=app.config['MAIL_SENDER'], recipients=[to])
msg.body = render_template(template + '.txt', **kwargs)
msg.html = render_template(template + '.html', **kwargs)
thr = Thread(target=send_async_email, args=[app, msg])
thr.start()
return thr
:コード
これは電子メールの方法でファイルです送信されます:
あなたは間違っていたところ
使用しているコードを記述してください。コードなしであなたが間違っている場所を推測するのは難しいです。 – formatkaka
あります。それを見ていただきありがとうございます。 – fabee
設定はどうですか?サーバー、ポートなど – formatkaka