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.
xantoxis@lemmy.world 1 year ago
You mean the validation which the underlying API will perform on its own? You don’t need to do it.
elrik@lemmy.world 1 year ago
I disagree. You should have validation at each layer, as it’s easier to handle bad inputs and errors the earlier they are caught.
It’s especially important in this case with email because often one or more of the following comes into play when you’re dealing with an email input:
I’m not suggesting that validation of an email should attempt to be exhaustive, but a well thought-out implementation validates all user inputs. Even the underlying API in this example is validating the email you give it before trying to send an email through its own underlying API.
Passing obvious garbage inputs down is just bad practice.