Python中内置了一个smtp邮件发送模块,Django在此基础上进行了简单地封装,让咱们在Django环境中能够更方便更灵活i的发送邮件。全部的功能都在django.core.mail中,经常使用的免费服务器有:16三、12六、QQ等。html
SSL:(Secure Socket Layer,安全套接字层)位于可靠的面向链接的网络层协议和应用层协议之间的一种协议层。SSL经过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通信。python
TLS:(Transport LayerSecurity,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。算法
咱们一般所说的 HTTPS 协议,就是“HTTP 协议”和“SSL/TLS 协议”的组合。你能够把 HTTPS 大体理解为——“HTTP over SSL”或“HTTP over TLS”(反正 SSL 和 TLS 差很少)。浏览器地址栏的那把锁指的就是SSL协议。django
TLS和SSL的关系:并列关系后端
最新版本的TLS(Transport Layer Security,传输层安全协议)是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它创建在SSL 3.0协议规范之上,是SSL 3.0的后续版本。在TLS与SSL 3.0之间存在着显著的差异,主要是它们所支持的加密算法不一样,因此TLS与SSL 3.0不能互操做。浏览器
TLS的主要目标是使SSL更安全,并使协议的规范更精确和完善。TLS在SSL v3.0的基础上,提供了如下增长内容:安全
首先,咱们须要一个本地SMTP服务器或者在项目setting.py中添加如下设置来配置一个外部SMTP服务器:服务器
若是没有本地SMTP服务器,可使用e-mail提供者的SMTP服务器。下面的简单配置是经过QQ服务器发送e-mail的配置。网络
# SMTP后端是Django的默认配置,若是要明确指定,请在settings中输入如下内容 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = "smtp.qq.com" # SMTP服务器主机 EMAIL_PORT = 25 # 端口 EMAIL_HOST_USER = "695485***@qq.com" # 发送邮件的邮箱 EMAIL_HOST_PASSWORD = "*********" # #邮箱的受权密码 EMAIL_USE_SSL= True
注意:配置中,EMAIL_USE_TLS和EMAIL_USE_SSL都默认设置为False,须要配置其中一个为True,可是不能两个都设置为True。通常端口587对应TLS,端口465对应SSL。app
阿里云默认禁用了25端口,使用465端口,EMAIL_USE_TLS=True
# 前面四个参数必需要写,后面的参数能够为空 def send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None):
# apps/utils/email_send.py from django.core.mail import send_mail def sendMail(request): from_email = 'ray<695485075@qq.com>' msg = '<a href="http://127.0.0.1:8000/index/">点击激活</a>' send_mail("注册激活","",msg,from_email,recipient_list=['',]) return HttpResponse("邮件已发送")