0

Djangoアプリケーションで例外が発生したときに管理者に通知する自動メールシステムをセットアップしたいと思います。今のところ、 は電子メール通知システムをテストしたいと思っていて、数多くのチュートリアルとヒントherehereherehereといくつかの他のサイトに加えて、エラー処理のためのDjango電子メールのテスト

私はPython 3.5とDjango 1.8を使って、ローカルのDjango開発環境(実稼働環境ではない)を使用しています。私は問題がある(何もプロキシ関与など)

settings.py

ADMINS = (
    ('My Name', '[email protected]'), 
) 
#EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
MAILER_LIST = ['[email protected]'] 
EMAIL_HOST = 'smtp.live.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'myhotmail_password' 
EMAIL_PORT = 465 
EMAIL_USE_TLS = True 
DEFAULT_FROM_EMAIL = '[email protected]' 

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'formatters': { 
     'standard': { 
      'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s", 
      'datefmt' : "%d/%b/%Y %H:%M:%S" 
     }, 
    }, 
    'handlers': { 
     'default': { 
      'level':'DEBUG', 
      'class':'logging.handlers.RotatingFileHandler', 
      'filename': SITE_ROOT + "/logfile.log", 
      'maxBytes': 1024*1024*5, #5 MB 
      'backupCount': 5, 
      'formatter': 'standard', 
     }, 
     'request_handler':{ 
      'level':'DEBUG', 
      'class':'logging.handlers.RotatingFileHandler', 
      'filename': SITE_ROOT + "/django_request.log", 
      'maxBytes': 1024*1024*5, #5 MB 
      'backupCount': 2, 
      'formatter': 'standard' 
     }, 
     'mail_admins': { 
      'level': 'ERROR', 
      'class': 'django.utils.log.AdminEmailHandler', 
     } 
    }, 
    'loggers': { 
     '': { 
      'handlers':['mail_admins', 'default'], 
      'level':'DEBUG', 
      'propagate': True, 
     }, 
     'django.request': { 
      'handlers': ['request_handler'], 
      'level': 'DEBUG', 
      'propagate': False, 
     }, 
     'django': { 
      'handlers': ['request_handler', 'default', 'mail_admins',], 
      'propagate': True, 
      'level': 'DEBUG', 
     }, 
    } 
} 

view.py

from django.core.mail import send_mail 
from django.core.mail import EmailMessage 

def search(request): 
    ''' 
    other bits of code 
    '''  
     send_mail("Subject goes here", "Text goes here", '[email protected]', ['[email protected]'], fail_silently=True) 
     #msg = EmailMessage("Subject goes here", "Text goes here", '[email protected]', ['[email protected]']) 
     #msg.send() 
     #return HttpResponse('%s'%res) 

からの抜粋私のホームネットワーク上で午前:[Errno 60] Operation timed out 。私が何をよく知っていない何らかの理由で、電子メールは送信されません。どこが間違っていますか?

+0

ジャンゴでの電子メールの多くの問題がありますメールプロバイダはメールを受け付けません。この場合、マイクロソフトは、あなたが制御しない電子メールアドレスである「noreply @ hotmail.com」からの電子メールを受け付けない可能性があります。 – Alasdair

+0

@ Alasdair:ありがとうございましたが、これを変更しても何も解決されませんでした。代わりに、まったく同じエラーメッセージが表示されます。 – pymat

+0

あなたのホットメールを使用するための他の提案はありません。そのSMTPサーバを動作させることができない場合は、mailgunのようなプロバイダで['django-anymail'](https://github.com/anymail/django-anymail)を使うこともできます。これらのプロバイダの多くは、個人的な使用に十分な無料のプランを持っています。 – Alasdair

答えて

0

設定が誤って、私がテストしていたホットメールアカウント用に構成されていました。代わりに:

EMAIL_HOST = 'smtp-mail.outlook.com' 
EMAIL_PORT = 25 

そして(それは違いはありませんが)、私はこの行をtweeked:

EMAIL_HOST = 'smtp.live.com' 
EMAIL_PORT = 465 

それはする必要がありますので

send_mail("hi there", "Text goes here", settings.EMAIL_HOST_USER, ['[email protected]'], fail_silently=True) 
関連する問題