code: def valid_email(emailaddress, domains=GENERIC_DOMAINS):
      
  
      # Email address must be at least 6 characters in total.
      # Assuming noone may have addresses of the type a@com
      if len(emailaddress) < 6:
          return False  # Address too short.
  
      # Split up email address into parts.
      try:
          localpart, domainname = emailaddress.rsplit('@', 1)
          host, toplevel = domainname.rsplit('.', 1)
      except ValueError:
          return False  # Address does not have enough parts.
  
      # Check for Country code or Generic Domain.
      if len(toplevel) != 2 and toplevel not in domains:
          return False  # Not a domain name.
  
      for i in '-_.%+.':
          localpart = localpart.replace(i, "")
      for i in '-_.':
          host = host.replace(i, "")
  
      if localpart.isalnum() and host.isalnum():
          return True  # Email address is fine.
      else:
          return False
docs: Checks for a syntactically valid email address.