Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
importante Este artigo contém informações sobre como modificar o registro. Certifique-se de fazer backup do registro antes de modificá-lo. Certifique-se que você sabe como restaurar o registro se ocorrer um problema. Para obter mais informações sobre como fazer backup, restaurar e modificar o registro, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
256986
(http://support.microsoft.com/kb/256986/
)
Descrição do registro do Microsoft Windows
Este artigo descreve como solucionar a mensagem de erro "Não foi possível criar 'CDO.Message'". Você pode receber esta mensagem quando você usa um aplicativo para enviar mensagens de email.
A mensagem de erro é causada por um problema no Microsoft Collaboration Data Objects (CDO). Esse problema ocorre se um ou mais das seguintes condições forem verdadeiras:
O arquivo Cdosys.dll não está registrado corretamente.
A conta de usuário não tem permissões suficientes para acessar a chave do Registro para CDO para a biblioteca do Microsoft Windows 2000 (CDOSYS.dll).
Um servidor virtual de SMTP (Simple Mail Transfer Protocol) inválida está sendo usado, ou a propriedade SmtpMail.SmtpServer está configurada incorretamente.
O usuário não tem permissões para retransmitir email mensagens através do servidor virtual SMTP.
A propriedade MailMessage.From não está definida para um endereço de email válido.
Você pode usar um ou mais dos seguintes métodos para resolver o problema CDO. Aviso Podem ocorrer sérios problemas se você modificar o registro incorretamente usando o Editor do registro ou usando outro método. Esses problemas podem exigir que você reinstale seu sistema operacional. A Microsoft não garante que esses problemas possam ser solucionados. Modificar o registro por sua própria conta e risco.
Método 1: Verifique se o arquivo Cdosys.dll está registrado corretamente
Determine se o arquivo Cdosys.dll está registrado corretamente. Para fazer isso, execute as seguintes etapas:
Clique em Iniciar , clique em Executar , digite regedt32 e, em seguida, clique em OK .
No Editor do Registro, localize e expanda a subárvore do Registro HKEY_CLASSES_ROOT . Expanda TypeLib e em seguida, localize {CD000000-8B95-11 D 1-82DB-00C04FB1625D} .
Expanda {CD000000-8B95-11 D 1-82DB-00C04FB1625D} , expanda 1.0 e, em seguida, clique em 0 .
Clique em win32 e, em seguida, confirme que o seguinte valor é exibido no painel direito:
Drive: \WINDOWS\system32\cdosys.dll
Registre o arquivo Cdosys.dll. Para fazer isso, execute as seguintes etapas:
Clique em Iniciar , clique em Executar , digite regsvr32 %systemroot%\system32\cdosys.dll e, em seguida, clique em OK .
Observação Você pode receber o 0x800704da código de erro se existirem várias versões do CDO no mesmo sistema operacional. Para resolver esse problema, use o comando regsrv32 -u cdosys.dll para cancelar o registro do arquivo Cdosys.dll. Em seguida, registrar novamente o arquivo Cdosys.dll, executando o comando a seguir:
regsvr32 %systemroot%\system32\cdosys.dll
Para obter mais informações sobre versões CDO, visite o seguinte site da Web Microsoft Developer Network (MSDN):
Método 2: Conceder as permissões para a conta de usuário acessar a chave do Registro para CDO para Windows 2000 Library
Conceder permissão para a conta de usuário para acessar a chave do Registro para CDO para Windows 2000 Library.
Clique em Iniciar , clique em Executar , digite regedt32 e, em seguida, clique em OK .
No Editor do Registro, localize e expanda a chave do Registro HKEY_CLASSES_ROOT . Expanda TypeLib e em seguida, localize {CD000000-8B95-11 D 1-82DB-00C04FB1625D} .
Clique com o botão direito do mouse em {CD000000-8B95-11 D 1-82DB-00C04FB1625D} , clique em permissões e, em seguida, clique em Adicionar .
Tipo ComputerName \ UserName e em seguida, clique em OK
Observação O espaço reservado ComputerName representa o nome do computador. O espaço reservado UserName representa o nome do usuário.
Clique para selecionar a caixa de seleção em Permitir coluna para conceder permissão de leitura ao usuário e, em seguida, clique em OK .
Método 3: Verificar que a propriedade SmtpMail.SmtpServer é definida como um endereço IP de servidor válido
Verifique se você sabe o endereço IP de um servidor de email SMTP válido na rede. Em seguida, defina o valor da propriedade SmtpMail.SmtpServer para o valor válido.
Método 5: Certifique-se que a propriedade MailMessage.From é definida como um endereço de email válido
Use um endereço de email de remetente válido que existe no servidor SMTP. A propriedade SmtpMail.SmtpServer aponta para este servidor. Não use um endereço fictício diferente para o valor da propriedade MailMessage.From .
Você pode configurar o arquivo Cdosys.dll para apontar para servidores SMTP através de programação. Esta opção fornece aos desenvolvedores flexibilidade na configuração de servidores SMTP com base nas configurações de aplicativo os servidores. A seguir é exemplo de código em um aplicativo da Web do Microsoft Visual translation from VPE for Csharp.
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Web.Mail;
namespace WebApplication1
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
MailMessage mail = new MailMessage();
mail.To = "<john@contoso.com>";
mail.From = "<ruth@contoso.com>";
mail.Subject = "This is a test email.";
mail.Body = "Some text goes here";
// The following line will cause an exception to be thrown.
SmtpMail.SmtpServer = "172.16.0.0";
try
{
SmtpMail.Send(mail);
}
catch(Exception ex )
{
Response.Write("The following exception occurred: " + ex.ToString() );
// Check the InnerException.
while( ex.InnerException != null )
{
Response.Write("--------------------------------");
Response.Write("The following InnerException reported: " + ex.InnerException.ToString() );
ex = ex.InnerException;
}
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
Observação os espaços reservados <john@contoso.com> e <ruth@contoso.com> representar os endereços de email real dos usuários.
Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
827659
(http://support.microsoft.com/kb/827659/
)
Você recebe um erro "DllRegisterServer" ao tentar registrar uma DLL usando o Regsvr32.exe
327219
(http://support.microsoft.com/kb/327219/
)
Objetos de dados de colaboração para o Windows NT, Windows 2000 e Exchange 2000 requerem o Outlook Express
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: 910360
(http://support.microsoft.com/kb/910360/en-us/
)
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.