ID do artigo: 910360 - Última revisão: sexta-feira, 16 de março de 2007 - Revisão: 1.1

Como solucionar a mensagem de erro "Não foi possível criar 'CDO.Message'"

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

Nesta página

Expandir tudo | Recolher tudo

Sumário

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.

Mais Informações

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

  1. Determine se o arquivo Cdosys.dll está registrado corretamente. Para fazer isso, execute as seguintes etapas:
    1. Clique em Iniciar , clique em Executar , digite regedt32 e, em seguida, clique em OK .
    2. 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} .
    3. Expanda {CD000000-8B95-11 D 1-82DB-00C04FB1625D} , expanda 1.0 e, em seguida, clique em 0 .
    4. Clique em win32 e, em seguida, confirme que o seguinte valor é exibido no painel direito:
      Drive: \WINDOWS\system32\cdosys.dll
  2. Registre o arquivo Cdosys.dll. Para fazer isso, execute as seguintes etapas:
    1. 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):
      http://msdn2.microsoft.com/en-us/library/ms978698.aspx (http://msdn2.microsoft.com/en-us/library/ms978698.aspx)

Método 2: Conceder as permissões para a conta de usuário acessar a chave do Registro para CDO para Windows 2000 Library

  1. Conceder permissão para a conta de usuário para acessar a chave do Registro para CDO para Windows 2000 Library.
  2. Clique em Iniciar , clique em Executar , digite regedt32 e, em seguida, clique em OK .
  3. 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} .
  4. 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 .
  5. 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.
  6. 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 4: Configurar as permissões de usuário para retransmitir emails por meio do serviço SMTP

  1. Clique em Iniciar , clique em Executar , digite inetmgr e, em seguida, clique em OK .
  2. Expanda ComputerName e em seguida, com o botão direito do mouse um servidor SMTP virtual válido.

    Observação O espaço reservado ComputerName representa o nome do computador local.
  3. Clique em Propriedades . Na guia segurança , adicione a conta de usuário como um operador.
  4. Feche todas as caixas de diálogo e reiniciar o SMTP service.

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.

Referências

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

A informação contida neste artigo aplica-se a:
  • Microsoft Collaboration Data Objects 2.0
Palavras-chave: 
kbmt kbtshoot kbinfo KB910360 KbMtpt
Tradução automáticaTraduçã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: 910360  (http://support.microsoft.com/kb/910360/en-us/ )
Retired KB ArticleAviso 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.