请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

个人中心修改邮箱

个人中心修改邮箱调用send_register_email函数,这个函数又调用django的send_mail函数向新的邮箱发送验证码,今天我试着用了一个肯定是无法送达的邮箱比如1@1.com, 发现send_mail这个函数也是发送成功,其实是不可能送达。因此下面的return HttpResponse('{"status":"failure"}', content_type='application/json')是无法执行到的,而实际上对于不可能送达的邮箱应该执行到这句啊!!!???

def send_register_email(email, send_type='register'):
    #省略一部分
    .......
    elif send_type == "update_email":
        email_title = 'Test&Lab邮箱修改验证码'
        email_body = '你的邮箱验证码为:{0}'.format(code)

        send_status = send_mail(email_title, email_body, EMAIL_FROM, [email])
        if send_status:
            pass
        else:
            return HttpResponse('{"status":"failure"}', content_type='application/json')

正在回答 回答被采纳积分+3

1回答

bobby 2019-05-02 22:52:11

你可以看看这里返回的send_status的值是什么

0 回复 有任何疑惑可以回复我~
  • 修改邮箱为 1@1.com,  send_mail()函数返回结果1,说明发送邮件成功,实际上1@1.com这个邮件地址是不存在的啊。
    回复 有任何疑惑可以回复我~ 2019-05-03 16:46:20
  • 老师 返回是1
    回复 有任何疑惑可以回复我~ 2019-05-06 11:25:51
  • bobby 回复 提问者 weixin_慕斯卡4281563 #3
    这种状态码应该是邮件服务器返回的,你可以自己用qq邮箱给1@1.com发送一封邮件试试,你会发现qq邮箱会提示“发送成功”,虽然过后会有一封退回的邮件,但是这个对于python的库来说无从得知会有退信,因为退信这个算是一个异步的返回消息了,python邮件库只知道当时发送邮件的时候qq邮箱返回的是发送成功
    回复 有任何疑惑可以回复我~ 2019-05-06 17:39:16
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信