Как преобразовать форматированный адрес электронной почты в отображаемое имя и адрес электронной почты? - PullRequest
14 голосов
/ 02 октября 2008

С учетом адреса электронной почты: «Джим»

Если я пытаюсь передать это MailAddress, я получаю исключение:

Указанная строка не в форме, необходимой для адреса электронной почты.

Как мне разобрать этот адрес в отображаемое имя (Jim) и адрес электронной почты (jim@example.com) в C #?

РЕДАКТИРОВАТЬ: Я ищу код C # для его анализа.

EDIT2: я обнаружил, что MailAddress выбрасывал исключение, потому что у меня был пробел в начале строки адреса электронной почты.

Ответы [ 13 ]

0 голосов
/ 02 октября 2008
string inputEmailString = "\"Jimbo\" <jim@example.com>";
string[] strSet =  inputEmailString.Split('\"','<','>');   

MailAddress mAddress = new MailAddress(strSet[0], strSet[2]);
0 голосов
/ 02 октября 2008

try: "Jim" не уверен, что это сработает, но я обычно вижу это в почтовых клиентах.

0 голосов
/ 02 октября 2008
new MailAddress("jim@example.com", "Jimbo");

чтобы разобрать строку, которую вы дали:

string input = "\"Jimbo\" jim@example.com";
string[] pieces = input.Split(' ');
MailAddress ma = new MailAddress(pieces[1].Replace("<", string.Empty).Replace(">",string.Empty), pieces[0].Replace("\"", string.Empty));
...