你需要這樣的添加憑據您的電子郵件(用戶名和密碼):
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