Django的邮件发送以及云服务器上遇到的问题
邮件发送
首先我们的邮箱要开通smtp服务,然后就可以在settings中配置了
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_USE_TLS = False #是否使用TLS安全传输协议(用于在两个通信应用程序之间提供保密性和数据完整性。) EMAIL_USE_SSL = True #是否使用SSL加密,qq企业邮箱要求使用 EMAIL_HOST = 'smtp.163.com' #发送邮件的邮箱 的 SMTP服务器,这里用了163邮箱 EMAIL_PORT = 25 #发件箱的SMTP服务器端口 EMAIL_HOST_USER = 'charleschen@xmdaren.com' #发送邮件的邮箱地址 EMAIL_HOST_PASSWORD = '*********' #发送邮件的邮箱密码(这里使用的是授权码) # DEFAULT_FROM_EMAIL = 'tuweizhong <tuweizhong@163.com>' 这样别人收到的邮件中就会有你设定的名称 # 注意EMAIL_USE_TLS 与EMAIL_USE_SSL 是互斥的 # 发送邮件 from django.core.mail import send_mail send_mail('标题', '内容', '发送邮件的邮箱地址', ['收件人邮箱'], fail_silently=False) # 一次性发送多个邮件 from django.core.mail import send_mass_mail message1 = ('标题', '内容', '发送邮件的邮箱地址', ['收件人邮箱1', '收件人邮箱'2]) message2 = ('标题', '内容', '发送邮件的邮箱地址', ['收件人邮箱']) send_mass_mail((message1, message2), fail_silently=False)
云服务器的问题
本来代码在自己的机器上跑的是没有问题的,但是放到云服务器上就不行了,发送邮件时总会超时,经过大佬指点和一番百度,终于查到了问题所在,
原因竟然是: 阿里云新开通的ECS云服务器已默认封闭 25 邮件发送端口
所以,换端口吧!