簡體   English   中英

django2.1發送電子郵件失敗:ssl.SSLError:[SSL:WRONG_VERSION_NUMBER]版本號錯誤(_ssl.c:833)

[英]django2.1 send email fail:ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:833)

我想給自己發送電子郵件,所以我嘗試了。 我已經在settings.py中設置了我的電子郵件信息

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = False 
EMAIL_USE_SSL = True   
EMAIL_HOST = 'smtp.163.com'  
EMAIL_PORT = 25     
EMAIL_HOST_USER = '*****@163.com'    
EMAIL_HOST_PASSWORD = '***'   

然后我從Django文檔中寫下示例

from django.core.mail import send_mail

send_mail(
    'Subject here',
    'Here is the message.',
    'from@example.com',
    ['to@example.com'],
    fail_silently=False,
)

然后發生了異常

ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:833)

如何解決?

您應檢查使用的端口號是否正確。

您可能需要將端口從25更改為465或587,以將SMTP與SSL配合使用; 端口25通常用於非加密電子郵件。 當然,這取決於您的電子郵件提供商,但這是大多數提供商遵循的一種標准。

對於端口號的一些歷史背景,我在mailgun博客上找到了這篇文章 (作為眾多文章之一)。

嘗試通過類似的Web框架(web2py)和其他電子郵件服務提供商(gmail)發送電子郵件時遇到相同的錯誤消息。

無論軟件組件和電子郵件服務器不同,解決方案都是相同的:仔細檢查您計划使用的電子郵件服務的端口。 例如, 對於SSLGmail使用端口465,對於TLS使用端口586 正確后,即可按預期發送電子郵件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM