私はDjangoを使い慣れていますが、50ページ(大部分はSOとDjangoのドキュメント)を読み、私の状況のために。Django - 電子メールはシェルでは動作しますが、localhost上では動作しません - ConnectionRefusedError
私は単にDjangoのsend_mail関数を使って電子メールを送信しようとしています。私はGmail上でSMTPを使ってこれを動作させることを望んでいますが、今はlocalhost経由で動作しません。私はこのsend_mail機能をテストしています私のtest_email.pyファイルを実行すると、私は次のエラーを取得する:
ConnectionRefusedError:[WinError 10061]ターゲットマシンが積極的に
それを拒否したため接続していません私はこのsend_mail呼び出しを(python manage.pyシェルを介して)シェルで実行すると、それは完全にうまくいっていて、期待通りにメールを表示します。私がDjangoでエラーをポップアップして実行しようとすると一度だけです。私はまた私のsettings.pyに次のように周りにプレイした
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
:私は私は私のsettings.pyファイルに入れて設定には次の2セットのどの順列に関係なく、上記のエラーを取得していないことに注意してください前のセット(私は先に自分がローカルホストが動作していないか見てきてると思いますが)を持つファイル、およびこれらの設定の様々なミックス:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]' # Note I'm using my actual gmail address here in real life
EMAIL_HOST_PASSWORD = '****' # Note I'm using my actual gmail password here in real life
DEFAULT_FROM_EMAIL = '[email protected]' # Note I'm using my actual gmail address here in real life
SERVER_EMAIL = '[email protected]' # Note I'm using my actual gmail address here in real life
私はCMDプロンプトで次のコマンドを実行していますよ私がlocalhostルートに行くことを試みるときに側にオフ:
python -m smtpd -n -c DebuggingServer localhost:1025
ここで私は、私は、接続がエラーを拒否しますジャンゴ、で実行しようとしているtest_email.pyファイルです:これもローカルホストを経由して動作していない理由について
from django.core.mail import send_mail,EmailMessage
from django.conf import settings
settings.configure()
# Create your tests here.
# Email test #1: send email from my personal email to myself
send_mail(
'Email Test #1',
'Test if I can send email from my personal Gmail account to another email account via Django project.',
settings.EMAIL_HOST_USER,
['[email protected]'],
fail_silently=False
)
任意の考えや試してみるべき他のものに対する提案は非常に高く評価されます。
ありがとうございます!
Telnetまたは同様のを使用してsmtp.gmail.com:587に接続することはできますか?一部のポートをブロックするプロキシ/ファイアウォールの背後にいる可能性があります。 – Selcuk
@Selcuk:私もtelnetを使い慣れていますが、「o smtp.gmail.com 587」と入力すると接続できるようです。 –
@Selcuk:localhost:1025へのtelnet接続を開こうとしたが、接続に失敗したことに注意してください... –