internal void EncodeHeaders(HeaderCollection headers)
{
if (this.headersEncoding == null)
{
this.headersEncoding = Encoding.GetEncoding("utf-8");
}
for (int i = 0; i < headers.Count; i++)
{
string key = headers.GetKey(i);
if (MailHeaderInfo.IsUserSettable(key))
{
string[] values = headers.GetValues(key);
string str2 = string.Empty;
for (int j = 0; j < values.Length; j++)
{
if (MimeBasePart.IsAscii(values[j], false))
{
str2 = values[j];
}
else
{
str2 = MimeBasePart.EncodeHeaderValue(values[j], this.headersEncoding, MimeBasePart.ShouldUseBase64Encoding(this.headersEncoding), key.Length);
}
if (j == 0)
{
headers.Set(key, str2);
}
else
{
headers.Add(key, str2);
}
}
}
}
}