setting.py
# 发送邮件参数
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.mxhichina.com'
EMAIL_PORT = 25
# 发送邮件的邮箱账号
EMAIL_HOST_USER = 'xxxx'
# 在邮箱中设置的客户端授权密码或者密码
EMAIL_HOST_PASSWORD = 'xxxx'
# 收件人看到的发件人
EMAIL_FROM = '改建官网<xxx账号>'
我们传统使用的比较简单的是 STMP 25端口收发邮件
但是最新阿里云服务器封掉了25端口
在终端输入命令行 ,可测试25端口是否可连接。
telnet smtp.163.com 25
有返回消息即成功
客服的解释一下就说明的问题:25端口封掉了 时间是2016年9月底以后新购买的服务器。
解决:
setting.py
EMAIL_USE_SSL = True
EMAIL_PORT = 465
# 发送邮件参数
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.mxhichina.com'
EMAIL_USE_SSL = True # ssl方式连接
EMAIL_PORT = 465
# 发送邮件的邮箱账号
EMAIL_HOST_USER = 'xxxx'
# 在邮箱中设置的客户端授权密码或者密码
EMAIL_HOST_PASSWORD = 'xxxx'
# 收件人看到的发件人
EMAIL_FROM = '改建官网<xxx账号>'
views.py
from django.core.mail import send_mail
from django.conf import settings
def send_verify_mail(send_email, now_time, name, mobile, email,company, content):
send_mail(
subject='网站留言通知',
message='',
from_email=settings.EMAIL_FROM,
recipient_list=[send_email],
html_message='<p>尊敬的领导您好!</p>' \
# '<p>感谢您使用本网站。</p>' \
'<p>网站在:%s 分,收到: %s 的留言,手机号为:%s 。邮箱地址为:%s 。工作单位为:%s 留言内容::%s 。</p>' \
'<p>请尽快回复,谢谢。</p>' \
'<p>更多详情请点击<a href=www.baidu.com>改建官网</a></p>' % (now_time, name, mobile, email, company, content)
)