def validate_email(email_str):
    """
    Basic validation of email:
        Check for '@' symbol.
        Check there are characters before the '@'
        Check there are characters after the '@', including a '.'
    Returns:
        is_valid (bool)
        failed_validation_reason (str)
    """
    if '@' not in email_str:
        return False, 'Email is missing @'
    domain = email_str.split('@')[-1]
    pre_domain = email_str.replace(f'@{domain}', '')
    if '.' not in domain:
        return False, "Email domain name is missing a '.'"
    if len(pre_domain) == 0:
        return False, 'Email appears to be missing the username portion'
    return True, None
