Проблема при отправке письма с вложениями, содержащими русские символы - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. В общем есть код, отправляет письмо стандартными средствами .NET. В 2005 студии код компилится и отсылает письмо отлично с любыми вложениями, но в 2010 выдается сообщение: {"An invalid character was found in the mail header: 'Ч'."} Нашел что это из за языков и региональных стандартов тема. Поменял региональные стандарты ошибки нет, но вместо вложений с русскими названиями, на почту приходит фал с таким названием
=?utf-8?B?0JfQsNC00LDRh9CwIC0g0YPQv9GA0LDQ\
и таким содержимым
=?utf-8?B?c3RDNzBMWFF2ZEM0MExVZzBZSFF0ZEdBPz0NCiA9P3V0Zi04P0I/MExM?=\
\

 =?utf-8?B?UXRkR0EwTDNRdnRDNUlOR0gwTERSZ2RHQzBZelJqaURRbjlDKzBZZlJn?=\
\

 =?utf-8?B?dEMrMExMUXZ0Q3o/PQ0KID0/dXRmLTg/Qj8wTDRnMExyUmc5R0EwWXpR?=\
\
 =?utf-8?B?dGRHQTBMQXVkSGgwPz0=?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment

xOv/IO/w7uPw4Ozs+yDv7vfy7uL76SDq8/D85fAg7eXu4fXu5Ojs7iDw4Ofw4OHu
8uDy/CD08+3q9uju7eDrIOLo5OAgIsrr6OXt8iDx5fDi5fDt7uUg7/Do6+7m5e3o
5SIuIA0KzvHt7uLt++Ug9eDw4Ory5fDo8fLo6ug6DQoxLiDK6+jl7fLx6u7lIOgg
8eXw4uXw7e7lIO/w6Ovu5uXt6P8g4fPk8/Ig7eD17uTo8vzx/yDt4CDw4Oft+/Ug
8eXy5eL79SDw5fHz8PHg9Swg8i7lLiDt4CDw4Oft+/Ug6u7s7+D1Ow0KMi4gzuH5
5e3o5SDK6+jl7fIt0eXw4uXwIOgg0eXw4uXwLcrr6OXt8iDh8+Tl8iDv8O7o5+Lu
Вот сам код:
string MessaData = @"D:\Проекты\Почтовый курьер\PostRiderServer\PostRiderServer\bin\Debug\Messages atachments\removed@mail.ru\545.jpg<?>D:\Проекты\Почтовый курьер\PostRiderServer\PostRiderServer\bin\Debug\Messages atachments\removed@mail.ru\avatar4607_3.gif<?>";
 
            System.Net.Mail.SmtpClient scl = new System.Net.Mail.SmtpClient("smtp.mail.ru", 2525);
            scl.Credentials = new NetworkCredential("removed@mail.ru", "password");
            scl.EnableSsl = false; ;
            scl.Timeout = 450 * 1000;//5 минут на отправку письма
            System.Net.Mail.MailMessage Mes = new System.Net.Mail.MailMessage();
            Mes.From = new System.Net.Mail.MailAddress("removed@mail.ru");
            Mes.To.Add(new System.Net.Mail.MailAddress("removed@mail.ru"));
            Mes.Subject = "gjhgjорплорлрло";// MessaData[1] + "   от " + MessaData[0] + ".";
            Mes.Body = "iujhioserjgokwerjhl wer wer wорпорплдрлдорл лд рлдорлдорлдer e";
 
            if (MessaData != "")
            {
                string[] sAttachments = MessaData.Split(new string[] { "<?>" }, StringSplitOptions.RemoveEmptyEntries);
                foreach (string sFilePath in sAttachments)
                {
                    //Если вложение существует
                    if (File.Exists(sFilePath))
                    {
                        //Создаём вложение
                        Attachment attach = new Attachment(sFilePath, MediaTypeNames.Application.Octet);
                        attach.ContentDisposition.CreationDate = System.IO.File.GetCreationTime(sFilePath);
                        attach.ContentDisposition.ModificationDate = System.IO.File.GetLastWriteTime(sFilePath);
                        attach.ContentDisposition.ReadDate = System.IO.File.GetLastAccessTime(sFilePath);
 
                        //Прикрепляем вложение
                        Mes.Attachments.Add(attach);
                    }
                }
            }
            //Отправляем сообщение
            scl.Send(Mes);
Может кто-нить сталкивался с данной проблемой, подскажите как это решить?

Решение задачи: «Проблема при отправке письма с вложениями, содержащими русские символы»

textual
Листинг программы
//using System.Net.Mail;
using System.Web.Mail;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы