亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復 ConnectionRefusedError:

如何修復 ConnectionRefusedError:

RISEBY 2021-12-21 17:27:50
如何使用 Django 電子郵件修復 [WinError 10061]?(目標機器主動拒絕,無法連接)我正在使用 Django 發送電子郵件。我顯然遇到了一個常見的網絡錯誤,但我讀過的任何答案都沒有解決。我相信我的插座有問題,當我發送電子郵件時,出現以下錯誤:Traceback (most recent call last):File "<stdin>", line 1, in <module>File "C:\Users\Jaime\Miniconda3\envs\mydjango\lib\site- packages\django\core\mail\message.py", line 291, in sendreturn self.get_connection(fail_silently).send_messages([self])File "C:\Users\Jaime\Miniconda3\envs\mydjango\lib\site- packages\django\core\mail\backends\smtp.py", line 103, in send_messagesnew_conn_created = self.open()File "C:\Users\Jaime\Miniconda3\envs\mydjango\lib\site- packages\django\core\mail\backends\smtp.py", line 63, in openself.connection = self.connection_class(self.host, self.port, **connection_params)File "C:\Users\Jaime\Miniconda3\envs\mydjango\lib\smtplib.py", line 251, in __init__(code, msg) = self.connect(host, port)File "C:\Users\Jaime\Miniconda3\envs\mydjango\lib\smtplib.py", line 336, in connectself.sock = self._get_socket(host, port, self.timeout)File "C:\Users\Jaime\Miniconda3\envs\mydjango\lib\smtplib.py", line 307, in _get_socketself.source_address)File "C:\Users\Jaime\Miniconda3\envs\mydjango\lib\socket.py", line 727, in create_connectionraise errFile "C:\Users\Jaime\Miniconda3\envs\mydjango\lib\socket.py", line 716, in create_connectionsock.connect(sa)ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it這是我嘗試過的:1)import socketsocket.getaddrinfo('hotmail-com.olc.protection.outlook.com', 80)socket.getaddrinfo('smtp.hotmail.com', 8000)socket.getaddrinfo('smtp.hotmail.com', 587)2)關閉防火墻/防病毒3)在 python shell 和 Django 應用程序中運行代碼4)我從 nslookup MX 查詢中獲得了 smtp 服務器我在 python shell 中運行這個測試代碼:from django.conf import settingsfrom django.core.mail import EmailMessagesettings.configure()from django.core.mail import send_mailimport socketsocket.getaddrinfo('hotmail-com.olc.protection.outlook.com', 80)預期結果現在我想從 localhost Django 應用程序發送電子郵件。將來我會將代碼上傳到 pythonanywhere.com 服務器。
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

[已修復] 這是我發送電子郵件的 Django 代碼:

(大約 12 小時后...)




1) 我在 settings.py 中缺少配置

settings.py


DEFAULT_FROM_EMAIL = 'admin@********.com'

SERVER_EMAIL = 'admin@********.com'

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

EMAIL_USE_TLS = True

EMAIL_HOST = 'mail.********.com'

EMAIL_HOST_USER = 'admin@********.com'

EMAIL_HOST_PASSWORD = '*******'

EMAIL_PORT = 587



2) Windows 配置

它與以下無關:


防火墻

殺毒軟件


3) 我不確定 SMTP 服務器的名稱

確保您擁有正確的憑據 settings.py

我的hotmail最后沒有用。我不得不使用主機服務提供的電子郵件。


4) Python shell 與 Django shell 不同

我正在 python shell 中測試代碼。正確的做法是調用:


python manage.py shell

而不僅僅是 python



發送電子郵件



(在您配置好 settings.py 文件之后)


您可以打開 Django shell 并復制代碼或在 Django `views.py` 文件中寫入特定視圖




from django.core.mail import EmailMessage


mail_subject = 'Active a sua conta.'

message = "message"

to_email = "[email protected]"


email = EmailMessage(

    mail_subject, message,to=[to_email]

)

email.send()




值得一提:

不適用于端口 465

電子郵件有時會進入垃圾文件夾




謝謝海梅


查看完整回答
反對 回復 2021-12-21
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

這些EMAIL_*值需要在您的設置模塊中,而不是在您的腳本中。如果沒有這些值,EmailBackend處理發送消息的類將默認嘗試連接到localhost:25. 由于您沒有在本地系統上運行 SMTP 服務器,因此它拒絕連接。

您不需要該EMAIL_BACKEND值,因為它是默認值,但將其他EMAIL_*值移動到您的設置模塊中。


查看完整回答
反對 回復 2021-12-21
  • 2 回答
  • 0 關注
  • 267 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號