How to parse formatted email address into display name and email address?
Try:
"Jimbo <[email protected]>"
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 MailAddress
should 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 <[email protected]>"
as an example. Maybe the quotes are the issue? If so, just strip the quotes out and use MailAddress to parse the rest.
string emailAddress = "\"Jim\" <[email protected]>";
MailAddress address = new MailAddress(emailAddress.Replace("\"", ""));
Manually parsing RFC2822 isn't worth the trouble if you can avoid it.
Works for me:
string s = "\"Jim\" <[email protected]>";
System.Net.Mail.MailAddress a = new System.Net.Mail.MailAddress(s);
Debug.WriteLine("DisplayName: " + a.DisplayName);
Debug.WriteLine("Address: " + a.Address);
The MailAddress class has a private method that parses an email address. Don't know how good it is, but I'd tend to use it rather than writing my own.