3

Django プロジェクトでアカウント アクティベーション リンクを送信しようとしていますが、うまくいきません。そこで、シェルで非常に基本的な send_mail() 関数を試して、送信しているかどうかを確認します。

settin.py で

    AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend', # necessary for django.auth
    'survey.modelbackend.EmailBackend' # custom backend to authenticate using the email field
)

    #settings for the email 
    EMAIL_HOST = 'localhost'
    EMAIL_PORT = 25
    DEFAULT_FROM_EMAIL = 'webmaster@localhost'

(メールの設定はすべてデフォルト値を使用しています)

私が入力したシェルで

>>> from django.core.mail import send_mail
>>> send_mail('Subject here', 'Here is the message.', 'from@example.com',
    ...     ['myemailaddress@gmail.com'], fail_silently=False)

上記の行の後に1を返しますが、自分のメールでメールを取得できません

誰でもこの問題を解決し、メールが私のメールに送信されない理由を説明できますか?

どうもありがとうございました。

4

2 に答える 2

2

メールは送信されている可能性がありますが、迷惑メール フィルターにかかっています。

以外のものdjango.core.mail.backends.smtp.EmailBackendを として設定していない限り、バックエンドがサーバーに正常に接続し、サーバーにメッセージを送信するように指示した場合にのみ、 (または)settings.EMAIL_BACKENDが返されます。の場合、それは例外を返すか発生させることを意味します。これは、エラーが SMTP にあるか、または「スパム」に直接送信されていることを意味します。True1fail_silently=Falsesend_mailTrue

しかし、スパムを既にチェックしている可能性が低い場合は、SMTP サーバーを静かに失敗させる方法があります。Sendmail (最も一般的な*nixアプリケーションの 1 つ) についてはこちらの記事、またはMercury (Windows で利用可能な SMTP サーバーの 1つ)についてはこちらの記事をご覧ください。IIS を使用している場合、このサイトはいくつかの潜在的な問題に対処しているようです。

于 2013-06-27T05:35:23.167 に答える