code: public static String checkEmail(String email) {
          checkArgument(email != null, "Expected non-null email");
          checkArgument(email.length() > 0 && email.length() < 255,
                  "Expected a email in range 1 to 254 characters, got %s", email.length());
  
          String[] split = email.split("@", 2);
          String localPart = split[0];
          String domainPart = split[1];
          checkArgument(localPart.length() > 0 && localPart.length() < 64,
                  "Expected a email local part in range 1 to 63 characters, got %s", localPart.length());
          checkArgument(domainPart.length() > 0 && domainPart.length() < 256,
                  "Expected a email domain part in range 1 to 255 characters, got %s", domainPart.length());
          return check(email, isValidEmail(), email);
      }
docs: Performs email address check against RFC 822 specification
  <p>
  TODO:  RFC3696, RFC 5322 and RFC 5321
  
  @param email an Email to check
  @return checked Email
  @throws IllegalArgumentException if the {@code email} is invalid
  @see <a href="http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=1690">RFC3696 Errata</a>