isSafeEmail static method
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;
}