I also reached out to them on Twitter but they directed me to this form. I followed up with them on Twitter with what happened in this screenshot but they are now ignoring me.
The only correct regex for email is: .+
So long as the address has a local part, the at sign, and a hostname, it’s a valid email address.
Whether it goes somewhere is the tricky part.
Sorry, this is not a correct regex for an email address.
Sending using mail
on a local unix system? You only need the local part.
STOP VALIDATING NAMES AND EMAIL ADDRESSES. Send a verification email. Full stop. Don’t do anything else. You really want to do this anyway, because it’s a defense against bots.
I think it’s fair to prevent users from causing mail sent to your internal systems. It probably won’t cause any issues getting mail to the machine inbox for (no domain name), but it reasonably makes security uneasy.
Yes, but no. Pretty much every application that accepts an email address on a form is going to turn around and make an API call to send that email. Guess what that API is going to do when you send it a string for a recipient address without an @ sign? It’s going to refuse it with an error.
Therefore the correct amount of validation is that which satisfies whatever format the underlying API requires.
For example, AWS SES requires addresses in the form UserName@[SubDomain.]Domain.TopLevelDomain along with other caveats. If the application is using SES to send emails, I’m not going to allow an input that doesn’t meet those requirements.
Therefore the correct amount of validation is that which satisfies whatever format the underlying API requires.
You mean the validation which the underlying API will perform on its own? You don’t need to do it.
And this right here is a great example of why simple basic RegEx is rarely adequate
At the very least, should be something like
^[^
I’m like 99% sure I missed at least a few cases there, and will say “please don’t use this for anything production”
Here’s two: you can have multiple @s forming relays in an email address, and you can also break all the rules around dots and spaces if you put quotes around the local part, eg ".sarah.."@emails.com