ИСПРАВИТЬ: Сообщение об ошибке «Сбой при отправке почты» при отправки сообщения электронной почты с помощью платформа.NET Framework 4.0-приложение, использующее класс «System.Net.Mail.SmtpClient», если вложение электронной почты пре...

Переводы статьи Переводы статьи
Код статьи: 2183292 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

Рассмотрим следующий сценарий:
  • Запустите приложение на основе платформа.NET Framework 4.0. Это приложение использует System.Net.Mail.SmtpClient класс для отправки сообщений электронной почты.
  • Добавить вложение, удовлетворяющие следующим условиям в сообщение электронной почты.
    • В TransferEncoding не указано свойство вложения. Или TransferEncoding свойство задано как Base64 или Неизвестный.
    • Размер вложения превышает 3 МБ.
  • Отправить сообщение электронной почты.
В этом случае System.Net.Mail.SmtpException исключения и System.IndexOutOfRangeException внутреннее исключение. Кроме того появляется следующее сообщение об ошибке:
Сбой при отправке почты.
Ниже приводится сообщение об ошибке о внутреннем исключении.
Индекс находился вне границ массива.

Решение

Сведения об исправлении

Доступно исправление от корпорации Майкрософт. Тем не менее оно предназначено для устранения проблемы, в этой статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка.

Чтобы устранить эту проблему, обратитесь в службу поддержки пользователей Майкрософт для получения исправления. Полный список телефонов служб поддержки клиентов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-узел корпорации Майкрософт:
http://support.Microsoft.com/contactus/?ws=support
Примечание В особых случаях расходов, предусмотренная для звонков в службу поддержки может быть отменена, если специалистом службы поддержки Майкрософт определяет, что обновление будет решением проблемы. Дополнительные услуги по технической поддержке, не связанные с данным исправлением, оплачиваются на стандартных условиях.

Примечание Чтобы загрузить это исправление, можно также посетить следующий веб-узел корпорации Майкрософт:
https://Connect.Microsoft.com/VisualStudio/downloads/DownloadDetails.aspx?DownloadID=30226

Необходимые условия

Платформа.NET Framework 4.0 для установки этого исправления необходимо иметь.

Необходимость перезагрузки

Необходимо перезагрузить компьютер после установки исправления, если файл не используется.

Сведения о замене исправлений

Это исправление не заменяет других исправлений.

Сведения о файле

Английская версия данного исправления содержит атрибуты файла (или более поздними), приведенные в следующей таблице. Дата и время для этих файлов указаны в всеобщее скоординированное время (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, следует использовать Часовой пояс на вкладке Дата и время элемент панели управления.
Файл сведений для всех 32-разрядных версий Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 и Windows Server 2008 R2
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформы
SetupUi.dll10.0.30319.335295,24813-Июл-201006: 36x86
Setupengine.dll10.0.30319.335809,30413-Июл-201006: 36x86
Setup.exe10.0.30319.33578,15213-Июл-201006: 36x86
System.dll4.0.30319.3353,482,44013-Июл-201011: 48x86
Файл сведений для всех 64-разрядных версий Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 и Windows Server 2008 R2
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформы
SetupUi.dll10.0.30319.335295,24813-Июл-201006: 36x86
Setupengine.dll10.0.30319.335809,30413-Июл-201006: 36x86
Setup.exe10.0.30319.33578,15213-Июл-201006: 36x86
System.dll4.0.30319.3353,482,44013-Июл-201011: 48x86
Файл сведений для всех IA-64-разрядных версий Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 и Windows Server 2008 R2
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформы
SetupUi.dll10.0.30319.335295,24813-Июл-201006: 36x86
Setupengine.dll10.0.30319.335809,30413-Июл-201006: 36x86
Setup.exe10.0.30319.33578,15213-Июл-201006: 36x86
System.dll4.0.30319.3353,482,44013-Июл-201011: 48x86
System.Resources.dll4.0.30319.335217,44013-Июл-201006: 36x86

Временное решение

Чтобы обойти эту проблему, используйте один из следующих методов:
  • Укажите TransferEncoding Свойство QuotedPrintable или SevenBit. Например добавьте один из следующих строк кода в приложение.
    • attachment.TransferEncoding = System.Net.Mime.TransferEncoding.QuotedPrintable;
    • attachment.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
    ПримечаниеЭтот метод не может работать в любом случае, поскольку SevenBitкодирование и QuotedPrintable кодирование может произойти повреждение вложения и поскольку QuotedPrintable кодирование может вдвое большего размера вложения.
  • Отправьте только вложение, меньше, чем 3 МБ.

Статус

Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе «Информация в данной статье применима к:».

Ссылки

Дополнительные сведения о классе SmtpClient посетите следующий веб-узел Microsoft Developer Network (MSDN):
Общие сведения о классе «SmtpClient»
Дополнительные сведения о свойстве TransferEncoding посетите следующий веб-узел MSDN:
Общие сведения о свойстве «TransferEncoding»
Дополнительные сведения о терминах, используемых при описании обновлений программного обеспечения, см. в следующей статье базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Дополнительная информация

Чтобы воспроизвести эту проблему, выполните следующий код:
using System.Net.Mail;

static void Main(string[] args)
{
    SmtpClient client = new SmtpClient("Your mail server");
    client.Credentials = new System.Net.NetworkCredential("User", "Password", "Domain");

    MailMessage msg = new MailMessage("Send From", "Send To", "Large Attachment Mail", "Large Attachment - Test Body"); 
    Attachment attachment = new Attachment(@"<attachment file>");
     msg.Attachments.Add(attachment);
    client.Send(msg);

    msg.Dispose();
    msg = null;
    client = null;
}

Свойства

Код статьи: 2183292 - Последний отзыв: 29 ноября 2012 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft .NET Framework 4.0
Ключевые слова: 
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbmt KB2183292 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: 2183292

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com