У меня есть простой маршрут на сервере 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, хотя я могу настроить другую при необходимости. Предложения о том, как поступить, приветствуются.