isSafeEmail static method

bool isSafeEmail(
  1. String email
)

Checks that email contains no characters that could break out of an address header or an SMTP envelope address: control characters, <, >, ,, ; and - unless the local part is quoted - white space.

This is not a full RFC 5322 syntax check.

Implementation

static bool isSafeEmail(String email) {
  final isQuotedLocalPart = email.startsWith('"') && email.contains('"@');
  for (final code in email.codeUnits) {
    if (code < AsciiRunes.runeSpace ||
        code == 127 ||
        code == AsciiRunes.runeSmallerThan ||
        code == AsciiRunes.runeGreaterThan ||
        code == AsciiRunes.runeComma ||
        code == AsciiRunes.runeSemicolon) {
      return false;
    }
    if (code == AsciiRunes.runeSpace && !isQuotedLocalPart) {
      return false;
    }
  }

  return true;
}