def split_email(email):
    """Split an email address

    :param email: email address
    :type email: str
    :returns: email address parts, or False if not an email address
    :rtype: dict, bool
    """
    parts = email.strip().split("@")
    if len(parts) < 2:
        return False
    for i in parts:
        if i == "":
            return False

    domain = parts.pop()
    domain_parts = domain.split(".")
    sld = ""
    tld = ""

    if len(domain_parts) == 0:
        # The address does not have a top-level domain
        return False
    elif len(domain_parts) == 1:
        # The address has only a top-level domain (valid under RFC)
        tld = domain_parts[0]
    else:
        sld = domain_parts[0]
        for i in domain_parts[1:]:
            tld += (i + ".")
        tld = tld[0:-1]

    return {
        "address": "@".join(parts),
        "top_level_domain": tld,
        "second_level_domain": sld,
        "domain": domain,
    }