Получение 500 кодов состояния из flask во время поиска данных. Проблема как-то вызвана flask_mail - PullRequest
0 голосов
/ 20 марта 2020

У меня есть простой маршрут на сервере Flask, вызывающий все виды неожиданных действий - 500 с, неполные вызовы функций. Моя конечная цель - отправить электронное письмо, используя Flask, но это выходит за рамки этого поста. На данный момент я просто хочу, чтобы «Email Sent! (Предположительно)» было напечатано на консоли PyCharm.

Позвольте мне начать с начала.

Сначала у меня есть файл javascript, где Я делаю:

const guestName = document.getElementById("input-name").value;
const guestNum = document.getElementById("input-phone-num").value;
const guestEmail = document.getElementById("input-email").value;
const guestSkype = document.getElementById("input-skype-address").value;

axios.get(`http://127.0.0.1:5000/create_email/${guestName}/${guestNum}/${guestEmail}/${s_or_f}/${guestSkype}`);

Это работает, как и ожидалось.

Топор ios .get () отправляется на мой Flask сервер, который имеет следующий код:

import stripe

import json
from flask import Flask, jsonify
import flask_cors
from flask_mail import Mail, Message

app = Flask(__name__)
flask_cors.CORS(app, resources={r'/*': {"origins": "*"}})


mail_settings = {
    "MAIL_SERVER": 'localhost',
    "MAIL_PORT": 8080,
    "MAIL_USE_TLS": False,
    "MAIL_USE_SSL": False,
    "MAIL_USERNAME": "my_email",
    "MAIL_PASSWORD": "my_password"
}
app.config.update(mail_settings)
mail = Mail(app)


# @app.route("/create_email", methods=["GET"])
# def create_email():
#     print("OK!")
#     return "Text"
@app.route("/create_email/<name>/<number>/<email>/<s_or_f>/<skype>")
def create_email(name, number, email, s_or_f, skype):
    print("OK! {}".format(name))
    msg = Message("You've Got A Signup",
                  sender=app.config.get("MAIL_USERNAME"),
                  recipients=["rolypolysfakeEmail@gmail.com"])
    content = "Name: {}\nPhone #: {}\nEmail: {}\nSkype or Facetime: {}\nSkype Address: {}"\
        .format(name, number, email, s_or_f, skype)
    msg.body = content

    mail.send(msg)
    print("Email Sent! (supposedly)")
    return "Text"


if __name__ == "__main__":
    app.run(debug=True)

Я вижу это в выводе Flask:

127.0.0.1 - - [19/Mar/2020 14:00:04] "GET /create_email/Roly%20Poly/my-phone-number/email@gmail.com/s/anotherfakeemail@live.ca HTTP/1.1" 500

Так как код достигает строки, которая говорит print("OK! {}".format(name)), я отключил несколько разных строк , Код не доходит до последней строки, когда я оставляю mail.send(msg) включенным, но он достигает последней строки, когда я его отключаю. Так что mail.send(msg) занимает слишком много времени, и сервер, по-моему, не работает. Что мне делать?

Я пытался перейти на эту страницу о почтовых серверах Outlook и ввести, например, Server: outlook.office365.com; Port: 993 на мой mail_settings почтовый сервер и информацию о порте. Без изменений.

Я новичок с Flask, и я начал использовать flask_mail полчаса go, так что отсутствие информации о том, что идет не так (я не вижу сообщений об ошибках, например), делает это трудно диагностировать самостоятельно. Учетная запись, которую я пытаюсь использовать для отправки электронной почты, является учетной записью Outlook, хотя я могу настроить другую при необходимости. Предложения о том, как поступить, приветствуются.

...