我使用的 API 在我的本地机器上运行良好,但在部署时却不行。我可以正确访问 API,但是,我无法再运行该sendmail
函数。这是代码:
def is_valid_email(email):
if len(email) > 7:
return bool(
re.match("^.+@(\[?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$", email)
)
def sendmail(name, email):
msg = EmailMessage()
msg["Subject"] = "Confirmation email"
msg["From"] = "mymail.com"
msg["To"] = email
msg.set_content(
f"Hallo {name},\n\nDanke für deine Email. Ich werde mich zeitnah um dein Anliegen kümmern.\n\nViele Grüße\nxxx"
)
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as smtp:
smtp.login("mymail.com", "password")
smtp.send_message(msg)
@api.route("/makerequest")
class MakeRequest(Resource):
def post(self):
name = request.get_json()["name"]
email = request.get_json()["email"]
text = request.get_json()["text"]
if is_valid_email(email) is False:
return {"message": "Invalid Email"}, 401
sendmail(name, email)
return {"message": "mail sent successfully"}, 200
这是我收到的错误:flask | smtplib.SMTPAuthenticationError: (534, b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbv\n5.7.14
我目前不使用防火墙,并且允许使用不太安全的应用程序。提供的用户名和密码是正确的,它们在我的本地机器上工作。它在我的服务器上不起作用的原因是什么以及如何修复它?