Given the email address: ‘Jim’ <jim@example.com>
If I try to pass this to MailAddress I get the exception:
The specified string is not in the form required for an e-mail address.
How do I parse this address into a display name (Jim) and email address (jim@example.com) in C#?
EDIT: I’m looking for C# code to parse it.
EDIT2: I found that the exception was being thrown by MailAddress because I had a space at the start of the email address string.
If you are looking to parse the email address manually, you want to read RFC2822 (https://www.rfc-editor.org/rfc/rfc822.html#section-3.4). Section 3.4 talks about the address format.
But parsing email addresses correctly is not easy and
MailAddressshould be able to handle most scenarios.According to the MSDN documentation for
MailAddress:http://msdn.microsoft.com/en-us/library/591bk9e8.aspx
It should be able to parse an address with a display name. They give
"Tom Smith <tsmith@contoso.com>"as an example. Maybe the quotes are the issue? If so, just strip the quotes out and use MailAddress to parse the rest.Manually parsing RFC2822 isn’t worth the trouble if you can avoid it.