你需要这样的添加凭据您的电子邮件(用户名和密码):
mail_handler = SMTPHandler(mailhost=('smtpout.secureserver.net',25),
fromaddr='[email protected]',
toaddrs=ADMINS, subject='YourApplication Failed',
credentials=('mail_username','mail_password'))
在本质上,你需要登录到(从GoDaddy的)您的邮件帐户,以便能够发送电子邮件。使用的IP需要是由godaddy提供的用于STMP服务的IP(我相信它是smtpout.secureserver.net),没有SSL的端口是25,80,3535中的一个,如果您使用SSL,端口是465.
希望它有帮助!
编辑: 由于它仍然无法正常工作,所以我应该添加一个完整的最小源代码来测试它,这是quickstart最简单的hello单词示例,它修改为在发生错误时发送电子邮件并始终失败
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
raise Exception
#return 'Hello World!'
if __name__ == '__main__':
ADMINS = ['[email protected]']
if not app.debug:
import logging
from logging.handlers import SMTPHandler
mail_handler = SMTPHandler(mailhost=('smtpout.secureserver.net',25),
fromaddr='[email protected]',
toaddrs=ADMINS, subject='YourApplication Failed',
credentials=('[email protected]','mypassword'))
mail_handler.setLevel(logging.ERROR)
app.logger.addHandler(mail_handler)
app.run()
这是你需要检查你需要使用实际的SMTP服务器重要寿:上GoDaddy的完全测试(美国)(它会在您每次访问页面时发送电子邮件)。当你登录godaddy时,点击电子邮件管理按钮(电子邮件工作区上的按钮),进入顶部菜单工具 - >服务器功能。之后,选择您的域和最后一行(SMTP),你应该会看到我提供的SMTP外出访问一个域名,在我来说,我有不同的人对不同的领域:
smtpout.asia.secureserver.net
smtpout.secureserver.net
找到一个您需要使用和修改我的示例代码,您应该在您的godaddy电子邮件的Web界面上立即收到电子邮件。
一旦你有正确的服务器,并使用您的凭据运行应用程序时,您会收到一封电子邮件,像这样的:
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
这很有道理,谢谢。我有修改,但不幸的是,仍然没有看到我的收件箱中的任何电子邮件发生错误。我用你的建议编辑了我的答案。我在'credentials'后添加了'port'。我安装了日志记录模块。 – mapr
设置您需要使用的端口mailhost =('smtpout.secureserver.net',25)我正在编辑答案来澄清这一点。也许你需要尝试先使用另一个客户端来设置smtp服务器来检查它是否正常工作,然后配置它。另外请记住,要使用godaddy提供的信息仔细检查地址和端口,如果您不知道在哪里可以找到它,请联系客户支持部门,只需调用它即可。 –
好的,谢谢。我会仔细看看的。但在第二行“info @ mydomain.com”之后,它会导致语法错误。它说'关键字arg'后面的非关键字arg。刚刚看到你的编辑后碰到这个:http://stackoverflow.com/questions/8191721/smtphandler-in-pythons-logging-module-sending-emails-one-at-a-time-how-can-is – mapr