Django 邮件发送问题smtplib.SMTPServerDisconnected: Connection unexpectedly closed

该错误出现的问题是: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)维护数据的完整性,确保数据在传输过程中不被改变。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章