最近将邮件验证功能部署到阿里云服务器上,不能发。
到服务器上看,连接超时
原来,阿里云服务器不允许使用25端口访问外部smtp服务器
必须使用465加密端口服务器
settings里面需要如此配置:
EMAIL_HOST = 'smtp.xxx.com'
EMAIL_HOST_USER = 'xxx@xxx.com'
EMAIL_HOST_PASSWORD = 'xxx'
EMAIL_PORT = 465
EMAIL_USE_SSL = True
EMAIL_FROM = 'xxx@xxx.com'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
默认是25,如果需要使用ssl加密465端口,或者tls加密587端口,需要配置EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
同时,也简单了解了django使用的发邮件标准库smtplib
发邮件例子:
# coding=utf-8
import smtplib
from email.mime.text import MIMEText
from_addr = 'xxx@xxx.com'
password = 'xxx'
smtp_server = 'smtp.xxx.com'
to_addr = 'xxx@xxx.com'
msg = MIMEText('你好,测试邮件','plain','utf-8')
server=smtplib.SMTP_SSL(smtp_server,465)
server.set_debuglevel(1)
server.login(from_addr,password)
server.sendmail(from_addr,[to_addr],msg.as_string())
server.quit()