Приветствую всех.
При попытки отправить письмо с вложенным файлом, имя которого указано кирилицей, выдает ошибку:
"Недопустимый знак в заголовке электронной почты."Я понимаю, что нужно поменять кодировку имени файла, но на какую???
Попробовал ASCII - в этом случае все символы заменились на знаки "_"
Смотрел заголовок шаблонного письма, там имя указывается в кодировке Windows-1251, например имя файла -
Копия Приказы.txt, как привести вот в такой вид:
filename="=?windows-1251?B?z/Do6uDn+y50eHQ=?="
Вот мой код:
attachment = new System.Net.Mail.Attachment(item.ToString(), MediaTypeNames.Application.Octet);
#region Content-Disposition:
ContentDisposition disposition = attachment.ContentDisposition;
Encoding srcEncoding = Encoding.Default;
Encoding dstEncoding = Encoding.GetEncoding(1251);
byte[] srcBytes = srcEncoding.GetBytes(Path.GetFileName(item.ToString()));
byte[] dstBytes = Encoding.Convert(srcEncoding, dstEncoding, srcBytes);
char[] dstChars = new char[dstEncoding.GetCharCount(dstBytes, 0, dstBytes.Length)];
dstEncoding.GetChars(dstBytes, 0, dstBytes.Length, dstChars, 0);
fileName = new string(dstChars);
disposition.FileName = fileName;
//disposition.CreationDate = System.IO.File.GetCreationTime((string)item);
//disposition.ModificationDate = System.IO.File.GetLastWriteTime((string)item);
//disposition.ReadDate = System.IO.File.GetLastAccessTime((string)item);
#endregion
msg.Attachments.Add(attachment); // Прикрепленные файлы