Проблема при отправке письма с вложениями, содержащими русские символы - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д