您的位置:首页 > 产品设计 > UI/UE

用qq邮箱做服务器发邮件失败,530 A secure connection is requiered(such as ssl)后解决方案如下

2017-11-20 13:33 555 查看
# _*_ coding:utf-8 _*_
__author__ = 'midsky'
__date__ = '2017/11/19 16:31'
from random import Random
from django.core.mail import send_mail
from MxOnline.settings import EMAIL_FROM

from email.mime.text import MIMEText
import smtplib

from users.models import EmailVerifyRecord

def random_str(randomlength=8):
str=''
chars='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
length=len(chars)-1
random=Random()
for i in range(randomlength):
str+=chars[random.randint(0,length)]
return str

mail_host="smtp.qq.com"
mail_user="39866099"
mail_pass="*******"#qq要求授权码,密码不行,你要在手机发短信具体的上qq邮箱网站上看
mail_postfix="qq.com"
def send_mail(to_list, sub, content):
'''''
to_list:发给谁
sub:主题
content:内容
send_mail("xxx@xxxx.com","主题","内容")
'''
me = mail_user + "<" + mail_user + "@" + mail_postfix + ">"
msg = MIMEText(content)
msg['Subject'] = sub
msg['From'] = EMAIL_FROM
msg['To'] = ";".join(to_list)
try:
s = smtplib.SMTP_SSL(mail_host, 465)
s.set_debuglevel(1)
s.login(mail_user, mail_pass)
s.sendmail(me, to_list, msg.as_string())
s.close()
return True
except Exception, e:
print str(e)
return False

def send_register_email(email,send_type="register"):
email_record=EmailVerifyRecord()
code=random_str(16)
email_record.code=code
email_record.email=email
email_record.send_type=send_type
email_record.save()

email_title=""
email_body=""
if send_type=="register":
email_title="考如意网注册激活链接"
email_body="请点击下面的链接激活你的账号:http://127.0.0.1:8000/active/{0}".format(code)

#send_status = send_mail(email_title, email_body, EMAIL_FROM, [email])
send_status = send_mail([email], email_title, email_body)
if send_status:
pass
        else:
pass
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐