该错误出现的问题是:SSL选项未选择
setting.py添加以下代码(以QQ邮箱为例子):
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = '123456@qq.com' #邮箱
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',
'123@qq.com',#发送方
['123@hrbust.edu.cn',],#接收方
)
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)维护数据的完整性,确保数据在传输过程中不被改变。