該錯誤出現的問題是:SSL選項未選擇
setting.py添加以下代碼(以QQ郵箱爲例子):
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = '[email protected]' #郵箱
EMAIL_HOST_PASSWORD = 'xxxxx' #授權碼
EMAIL_USE_SSL = True # 和SMTP對話是否使用SSL安全連接端口465
發送郵件代碼如下:
import os
from django.core.mail import send_mail
os.environ['DJANGO_SETTINGS_MODULE'] = 'EndProject.settings'
if __name__ == '__main__':
send_mail(
'來自cxl的測試郵件',
'test',
'[email protected]',#發送方
['[email protected]',],#接收方
)
SSL是(Secure Sockets Layer 安全套接層),就是本地電腦和郵件發送服務器之間會把數據加密了再發送,這樣比較安全及本地殺毒軟件無法檢測這樣的內容,有時候客戶端出現一些特殊的情況可以勾選ssl再試試會發現問題不存在了
SSL選擇TRUE OR FALSE
勾選ssl相當於本地到郵局服務器直接加密發送
沒有勾選ssl相當於本地到服務器平常線路發送;
ssl使用的端口和取消ssl的端口不一樣
smtp 默認25 465(ssl)
pop3 默認110 995(ssl)
imap 默認143 993(ssl)
SSL協議提供的服務主要有:
1)認證用戶和服務器,確保數據發送到正確的客戶機和服務器;
2)加密數據以防止數據中途被竊取;
3)維護數據的完整性,確保數據在傳輸過程中不被改變。