Correcção: mensagem de erro "Falha de envio de emails" ao enviar uma mensagem de email usando um aplicativo baseado no.NET Framework 4. 0, que usa a classe "System.Net.Mail.SmtpClient" se o anexo de email for maior que 3 MB

Traduções deste artigo Traduções deste artigo
ID do artigo: 2183292 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Considere o seguinte cenário:
  • é executar um aplicativo baseado no .NET Framework 4. 0. Esse aplicativo usa oSystem.Net.Mail.SmtpClientclasse para enviar mensagens de email.
  • Você adiciona um anexo que satisfizer as seguintes condições para uma mensagem de email.
    • OTransferEncodingpropriedade no anexo não foi especificada. Ou, oTransferEncodingpropriedade está especificada comoNa Base 64ouDesconhecido.
    • O tamanho do anexo é maior que 3 MB.
  • Você pode enviar a mensagem de email.
Neste cenário, umSystem.Net.Mail.SmtpExceptionexceção e umSystem.IndexOutOfRangeExceptionexceção interna do são gerados. Além disso, você recebe a seguinte mensagem de erro:
Falha no envio email.
a seguir está a mensagem de erro para a exceção interna:
O índice estava fora dos limites da matriz.

Resolução

Informações sobre o hotfix

Um hotfix compatível foi disponibilizado pela Microsoft. No entanto, destina-se apenas a corrigir o problema descrito nesse artigo. Aplique-o somente nos sistemas que apresentarem esse problema específico.

Para resolver esse problema, o contato ao cliente serviços de suporte Microsoft para obter o hotfix. Para obter uma lista completa dos números de telefone do serviços de suporte ao cliente Microsoft e informações sobre os custos de suporte, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Observação:Em alguns casos, taxas cobradas para chamadas de suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos de suporte normais se aplicarão a perguntas de suporte adicionais e problemas que não se qualificam à atualização específica em questão.

Observação:Para baixar esse hotfix, você também pode visitar o seguinte site da Microsoft:
https://Connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30226

Pré-requisitos

Você deve ter o .NET Framework 4. 0 instalado para aplicar esse hotfix.

Requisito de reinicialização

Não é necessário reiniciar o computador após aplicar esse hotfix, se nenhum arquivo afetado está sendo usado.

Informações de substituição do hotfix

Esta correcção não substitui outros hotfixes.

Informações do arquivo

a versão em inglês deste hotfix possui os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas na hora universal coordenada (UTC). Quando você visualiza as informações do arquivo, ele é convertido para a hora local. Para saber a diferença entre o UTC e a hora local, use oFuso horárioguia nosData e horaitem no painel de controle.
O arquivo de informações de todas as versões baseadas em x86 do Windows XP, do Windows Server 2003, do Windows Vista, do Windows Server 2008, do Windows 7 e do Windows Server 2008 R2
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
SetupUi.dll10.0.30319.335295,24813-Jul-201006: 36x86
Setupengine.dll10.0.30319.335809,30413-Jul-201006: 36x86
Setup. exe10.0.30319.33578,15213-Jul-201006: 36x86
System. dll4.0.30319.3353,482,44013-Jul-201011: 48x86
O arquivo de informações de todas as versões baseadas em x64 do Windows XP, do Windows Server 2003, do Windows Vista, do Windows Server 2008, do Windows 7 e do Windows Server 2008 R2
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
SetupUi.dll10.0.30319.335295,24813-Jul-201006: 36x86
Setupengine.dll10.0.30319.335809,30413-Jul-201006: 36x86
Setup. exe10.0.30319.33578,15213-Jul-201006: 36x86
System. dll4.0.30319.3353,482,44013-Jul-201011: 48x86
Informações do arquivo para todas as versões com base em IA-64 do Windows XP, do Windows Server 2003, do Windows Vista, do Windows Server 2008, do Windows 7 e do Windows Server 2008 R2
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
SetupUi.dll10.0.30319.335295,24813-Jul-201006: 36x86
Setupengine.dll10.0.30319.335809,30413-Jul-201006: 36x86
Setup. exe10.0.30319.33578,15213-Jul-201006: 36x86
System. dll4.0.30319.3353,482,44013-Jul-201011: 48x86
System.Resources.dll4.0.30319.335217,44013-Jul-201006: 36x86

Como Contornar

Para contornar esse problema, use um dos seguintes métodos:
  • Especificar oTransferEncodingpropriedade comoQuotedPrintableouSevenBit. Por exemplo, adicione uma das seguintes linhas de código do aplicativo:
    • attachment.TransferEncoding = System.Net.Mime.TransferEncoding.QuotedPrintable;
    • attachment.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
    Observação:Esse método pode não funcionar em todos os casos, porque oSevenBitcodificação e aQuotedPrintablecodificação pode corromper os anexos e porque oQuotedPrintablecodificação pode ser o dobro do tamanho do anexo.
  • Enviar somente um anexo que for menor do que 3 MB.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Referências

Para obter mais informações sobre oSmtpClientda classe, visite o seguinte site da MSDN (Microsoft Developer Network):
Informações gerais sobre a classe "SmtpClient"
Para obter mais informações sobre oTransferEncodingpropriedade, visite o seguinte site da MSDN:
Informações gerais sobre a propriedade "TransferEncoding"
Para obter mais informações sobre a terminologia da atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Mais Informações

Para reproduzir esse problema, execute o seguinte código:
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;
}

Propriedades

ID do artigo: 2183292 - Última revisão: terça-feira, 24 de agosto de 2010 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 4.0
Palavras-chave: 
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbmt KB2183292 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 2183292

Submeter comentários

 

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