77 {
78 if (string.IsNullOrEmpty(address))
79 {
80 if (throwExceptionIfFail)
81 {
83 }
84 parsedData =
default((
string,
string,
string,
Encoding));
85 return false;
86 }
87 if (displayNameEncoding == null)
88 {
90 }
91 if (displayName == null)
92 {
93 displayName = string.Empty;
94 }
95 if (!string.IsNullOrEmpty(displayName))
96 {
97 if (!MailAddressParser.TryNormalizeOrThrow(displayName, out displayName, throwExceptionIfFail))
98 {
99 parsedData =
default((
string,
string,
string,
Encoding));
100 return false;
101 }
102 if (displayName.Length >= 2 && displayName[0] == '"' && displayName[^1] == '"')
103 {
104 displayName = displayName.Substring(1, displayName.Length - 2);
105 }
106 }
107 if (!MailAddressParser.TryParseAddress(address, out var parsedAddress, throwExceptionIfFail))
108 {
109 parsedData =
default((
string,
string,
string,
Encoding));
110 return false;
111 }
112 if (string.IsNullOrEmpty(displayName))
113 {
114 displayName = parsedAddress.DisplayName;
115 }
116 parsedData = (displayName: displayName, user: parsedAddress.User, host: parsedAddress.Host, displayNameEncoding: displayNameEncoding);
117 return true;
118 }
static Encoding GetEncoding(int codepage)