gpt4 book ai didi

python - 我如何通过电子邮件将来自 Flask 的错误日志发送给自己?

转载 作者:太空狗 更新时间:2023-10-30 02:29:06 24 4
gpt4 key购买 nike

如果应用程序出现任何 404 或 500 错误,如何让 Flask 向我发送电子邮件?我在遇到 hereconfig.py 中插入了以下内容,但我没有收到任何电子邮件。我是 Flask 的新手,所以请原谅任何错误。

from app import app

ADMINS = ['myemail@domain.com']
if not app.debug:
import logging
from logging.handlers import SMTPHandler
mail_handler = SMTPHandler('smtpout.secureserver.net',
'info@mydomain.com',
ADMINS, 'YourApplication Failed',
credentials=('info@mydomain.com','***'),
port=25)
mail_handler.setLevel(logging.ERROR)
app.logger.addHandler(mail_handler)

我也对文档中的这一行感到有点困惑:

If your mail server requires credentials, these can also be provided.

我的服务器没有充当“邮件服务器”。我应该提供什么凭证?我的电子邮件托管在 GoDaddy 上。

最佳答案

您需要像这样为您的电子邮件添加凭据(用户名和密码):

mail_handler = SMTPHandler(mailhost=('smtpout.secureserver.net',25),
fromaddr='info@mydomain.com',
toaddrs=ADMINS, subject='YourApplication Failed',
credentials=('mail_username','mail_password'))

本质上,您需要登录您的邮件帐户(来自 godaddy)才能发送电子邮件。使用的 IP 需要是 godaddy 为 STMP 服务提供的 IP(我相信它是 smtpout.secureserver.net)并且没有 SSL 的端口是 25、80、3535 之一,如果您使用 SSL,端口是 465。

希望对您有所帮助!

编辑:因为它在我应该添加完整的最小源代码来测试它时仍然不起作用,所以这是快速入门最小问候语示例修改为在发生错误时发送电子邮件并且总是失败(它会发送一封电子邮件访问页面的时间),在 godaddy(美国)上进行了全面测试:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
raise Exception
#return 'Hello World!'

if __name__ == '__main__':
ADMINS = ['admin@mydomain.com']
if not app.debug:
import logging
from logging.handlers import SMTPHandler
mail_handler = SMTPHandler(mailhost=('smtpout.secureserver.net',25),
fromaddr='admin@mydomain.com',
toaddrs=ADMINS, subject='YourApplication Failed',
credentials=('admin@mydomain.com','mypassword'))
mail_handler.setLevel(logging.ERROR)
app.logger.addHandler(mail_handler)
app.run()

重要的是您需要检查您需要使用的实际 smtp 服务器。当您登录到 godaddy 时,单击电子邮件管理按钮(电子邮件工作区上的按钮),转到顶部菜单 TOOLS -> SERVER FUNCTIONS 。之后选择您的域,在最后一行 (SMTP) 中,您应该会看到一个域,就像我为 smtp 传出访问提供的域一样,在我的例子中,我为不同的域设置了不同的域:

smtpout.asia.secureserver.net
smtpout.secureserver.net

找到你需要使用的那个并修改我的示例代码,你应该会立即在你的godaddy邮箱的网页界面上收到邮件。

一旦您拥有正确的服务器并使用您的凭据,您应该会在运行应用程序时收到这样一封电子邮件:

Exception on / [GET]
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\flask\app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "C:\Python27\lib\site-packages\flask\app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Python27\lib\site-packages\flask\app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Python27\lib\site-packages\flask\app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Python27\lib\site-packages\flask\app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "hello.py", line 6, in hello_world
raise Exception
Exception

关于python - 我如何通过电子邮件将来自 Flask 的错误日志发送给自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com