MediumPython

Validate Email Input

PythonSecurityValidation

The function below accepts any non-empty string as a valid email address.

The bug: invalid emails like "notanemail" or "@missing.com" are accepted, causing downstream failures (bounced sends, database constraint violations, user frustration).

Your task: fix solve(email) to return True only for structurally valid email addresses.

A valid email for this exercise must:
1. Have a non-empty local part (before @)
2. Contain exactly one @ character
3. Have a domain with at least one dot and a non-empty TLD

solve('user@example.com')        # → True
solve('user+tag@sub.domain.io')  # → True
solve('notanemail')              # → False
solve('@missing.com')            # → False
solve('user@')                   # → False

Sample tests

Test #1No domain
Input: ["user@"]
Output: false
Test #2Empty string
Input: [""]
Output: false
Test #3Valid standard email
Input: ["user@example.com"]
Output: true
Test #4No @ character
Input: ["notanemail"]
Output: false
Test #5Empty local part
Input: ["@missing.com"]
Output: false