email_util.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import hashlib
  2. import time
  3. from random import Random
  4. def email_util(email, category='register'):
  5. """
  6. 发送邮件的方法
  7. register: 注册账号
  8. forget: 找回密码
  9. change: 修改邮箱
  10. """
  11. if category == 'register':
  12. subject = '彬彬商场注册激活链接'
  13. code_str = generate_random_str(16)
  14. message = '请点击下面的链接激活您的账号: http://127.0.0.1:8000/active/{0}'.format(code_str)
  15. elif category == 'forget':
  16. subject = '彬彬商场忘记密码连接'
  17. code_str = generate_random_str(8)
  18. timestamp = int(time.time())
  19. md5 = hashlib.md5()
  20. md5.update((code_str + email + str(timestamp)).encode('utf8'))
  21. hash_str = md5.hexdigest()
  22. message = '请点击下面的链接修改你的密码: http://127.0.0.1:8000/reset?timestamp={0}&hash={1}&email={2}'.format(
  23. timestamp,
  24. hash_str, email)
  25. elif category == 'change':
  26. subject = '彬彬商场修改邮箱连接'
  27. code_str = generate_random_str(6)
  28. message = '你的邮箱验证码为: {0}'.format(code_str)
  29. else:
  30. return False
  31. def generate_random_str(str_len=8):
  32. """ 生成长度为str_len的随机字符串 """
  33. custom_str = ''
  34. chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
  35. random = Random()
  36. for i in range(str_len):
  37. custom_str += chars[random.randint(0, len(chars) - 1)]
  38. return custom_str