Недопустимый знак в заголовке электронной почты.

10brd
Дата: 24.12.2009 10:07:25
Приветствую всех.

При попытки отправить письмо с вложенным файлом, имя которого указано кирилицей, выдает ошибку: "Недопустимый знак в заголовке электронной почты."
Я понимаю, что нужно поменять кодировку имени файла, но на какую???
Попробовал 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); // Прикрепленные файлы
10brd
Дата: 24.12.2009 13:31:43
решил проблему вот так:

attachment = new System.Net.Mail.Attachment(item.ToString(), MediaTypeNames.Application.Octet);

#region Content-Disposition:
ContentDisposition disposition = attachment.ContentDisposition;
fileName = attachment.ContentType.Parameters["name"];
disposition.FileName = fileName;
#endregion
                            
msg.Attachments.Add(attachment); // Прикрепленные файлы