#python #flask #heroku #gmail #flask-mail
Вопрос:
Я пытаюсь отправить электронное письмо через контактную форму, и оно работает и отправляется на моем локальном компьютере, но не на моем сервере Heroku. Вот соответствующий код:
mail = Mail()
ala.app.config["MAIL_SERVER"] = "smtp.gmail.com"
ala.app.config["MAIL_PORT"] = 587
ala.app.config["MAIL_USE_TLS"] = True
ala.app.config["MAIL_USE_SSL"] = False
ala.app.config["MAIL_USERNAME"] = os.getenv('EMAIL_USERNAME')
ala.app.config["MAIL_PASSWORD"] = os.getenv('EMAIL_PASSWORD')
mail.init_app(ala.app)
contact_name = flask.request.form['name']
contact_email = flask.request.form['email']
contact_phone = flask.request.form['phone']
contact_message = flask.request.form['message']
msg = Message('Inquiry',
sender=('Contact Inquiry', os.getenv('EMAIL_USERNAME')),
recipients=[os.getenv('EMAIL_USERNAME')])
msg.body = """
From: %s <%s> <%s>
%s
""" % (contact_name, contact_phone, contact_email, contact_message)
mail.send(msg)
Я также проверил журналы, и вот ошибка:
[2021-11-05 20:10:51,568] ERROR in app: Exception on /contact/ [POST]
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.9/site-packages/flask/app.py", line 2070, in wsgi_app
response = self.full_dispatch_request()
File "/app/.heroku/python/lib/python3.9/site-packages/flask/app.py", line 1515, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/app/.heroku/python/lib/python3.9/site-packages/flask/app.py", line 1513, in full_dispatch_request
rv = self.dispatch_request()
File "/app/.heroku/python/lib/python3.9/site-packages/flask/app.py", line 1499, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/app/ala/views/index.py", line 92, in contact
mail.send(msg)
File "/app/.heroku/python/lib/python3.9/site-packages/flask_mail.py", line 492, in send
message.send(connection)
File "/app/.heroku/python/lib/python3.9/site-packages/flask_mail.py", line 427, in send
connection.send(self)
File "/app/.heroku/python/lib/python3.9/site-packages/flask_mail.py", line 189, in send
list(sanitize_addresses(message.send_to)),
File "/app/.heroku/python/lib/python3.9/site-packages/flask_mail.py", line 125, in <lambda>
return map(lambda e: sanitize_address(e, encoding), addresses)
File "/app/.heroku/python/lib/python3.9/site-packages/flask_mail.py", line 105, in sanitize_address
nm, addr = addr
TypeError: cannot unpack non-iterable NoneType object
Я не понимаю, откуда может взяться нетип?
Комментарии:
1. Пожалуйста, добавьте номера версий программного обеспечения и библиотек, которые вы используете. Как было опубликовано, это может быть любая версия. Конец обзора.