2 回答

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
電子郵件有時會進入垃圾文件夾
謝謝海梅

TA貢獻2051條經驗 獲得超10個贊
這些EMAIL_*
值需要在您的設置模塊中,而不是在您的腳本中。如果沒有這些值,EmailBackend
處理發送消息的類將默認嘗試連接到localhost:25
. 由于您沒有在本地系統上運行 SMTP 服務器,因此它拒絕連接。
您不需要該EMAIL_BACKEND
值,因為它是默認值,但將其他EMAIL_*
值移動到您的設置模塊中。
添加回答
舉報