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 registo. Certifique-se de que cópia de segurança do registo antes de o modificar. Certifique-se que sabe como restaurar o registo se ocorrer um problema. Para obter mais informações sobre como efectuar uma cópia de segurança, restaurar e modificar o registo, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
256986
(http://support.microsoft.com/kb/256986/
)
Descrição do registo do Microsoft Windows
Este artigo descreve como resolver a mensagem de erro "Não foi possível criar 'CDO.Message'". Poderá receber esta mensagem quando utiliza uma aplicação para enviar mensagens de correio electrónico.
A mensagem de erro é provocada por um problema no Microsoft Collaboration Data Objects (CDO, Collaboration Data OBJECTS). Este problema ocorre se um ou mais das seguintes condições se verificar:
O ficheiro Cdosys.dll não está correctamente registado.
A conta de utilizador não tem permissões suficientes para aceder a chave de registo para o CDO para a biblioteca do Microsoft Windows 2000 (CDOSYS.dll).
Está a ser utilizado um servidor virtual de protocolo simples de transferência de correio (SMTP) inválido ou a propriedade SmtpMail.SmtpServer está configurada incorrectamente.
O utilizador não tem permissões para retransmitir mensagens de correio electrónico através do servidor virtual de SMTP.
A propriedade MailMessage.From não está definida para um endereço de correio electrónico válido.
Pode utilizar um ou mais dos seguintes métodos para resolver o problema CDO. aviso Podem ocorrer problemas graves se modificar o registo incorrectamente utilizando o Editor de registo ou utilizando outro método. Estes problemas poderão forçar a reinstalação do sistema operativo. Microsoft não garante que estes problemas podem ser resolvidos. Modificar o registo por sua conta e risco.
Método 1: Certifique-se de que o ficheiro Cdosys.dll está correctamente registado
Determine se o ficheiro Cdosys.dll está correctamente registado. Para o fazer, siga estes passos:
Clique em Iniciar , clique em Executar , escreva regedt32 e, em seguida, clique em OK .
No Editor de registo, localize e expanda a subárvore de registo 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, confirmar se o seguinte valor é apresentado no painel da direita:
Drive: \WINDOWS\system32\cdosys.dll
Registe o ficheiro Cdosys.dll. Para o fazer, siga estes passos:
Clique em Iniciar , clique em Executar , escreva regsvr32 %systemroot%\system32\cdosys.dll e, em seguida, clique em OK .
Nota Poderá receber a 0x800704da código de erro se existirem várias versões do CDO no mesmo sistema operativo. Para resolver este problema, utilize o comando regsrv32 -u cdosys.dll para anular o registo do ficheiro Cdosys.dll. Em seguida, volte a registar o ficheiro Cdosys.dll executando o seguinte comando:
regsvr32 %systemroot%\system32\cdosys.dll
Para mais informações sobre versões do CDO, visite o seguinte Web site da Microsoft Developer Network (MSDN):
Método 2: Conceder permissões para a conta de utilizador aceder a chave de registo para CDO para o Windows 2000 biblioteca
Conceder permissão para a conta de utilizador para aceder a chave de registo para CDO para o Windows 2000 Library.
Clique em Iniciar , clique em Executar , escreva regedt32 e, em seguida, clique em OK .
No Editor de registo, localize e expanda a chave de registo HKEY_CLASSES_ROOT . Expanda TypeLib e, em seguida, localize {CD000000-8B95-11 D 1-82DB-00C04FB1625D} .
Clique com o botão direito do rato {CD000000-8B95-11 D 1-82DB-00C04FB1625D} , clique em permissões (Permissions) e, em seguida, clique em Adicionar .
Tipo ComputerName \ UserName e, em seguida, clique em OK
Nota Marcador de posição ComputerName representa o nome do computador. O marcador de posição UserName representa o nome do utilizador.
Clique para seleccionar a caixa de verificação em Permitir coluna para conceder permissão de leitura para o utilizador e, em seguida, clique em OK .
Método 3: Certifique-se que a propriedade SmtpMail.SmtpServer estiver definida para um endereço IP de servidor válido
Certifique-se de que conhece o endereço IP de um servidor de correio SMTP válido na rede. Em seguida, defina o valor da propriedade SmtpMail.SmtpServer como o valor válido.
Método 5: Certifique-se de que a propriedade MailMessage.From estiver definida para um endereço de correio electrónico válido
Utilize um endereço de correio electrónico do remetente válido existe no servidor de SMTP. A propriedade SmtpMail.SmtpServer aponta para este servidor. Não utilize um endereço fictício diferente para o valor da propriedade MailMessage.From .
Pode configurar o ficheiro Cdosys.dll para apontar para servidores de SMTP através de programação. Esta opção permite aos programadores de flexibilidade na configuração de servidores de SMTP com base nas definições de aplicação dos servidores. Segue-se código de exemplo numa aplicação Web do Microsoft Visual C#.
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
}
}
Nota as marcadores de posição <john@contoso.com> e <ruth@contoso.com> representam os endereços de correio electrónico real dos utilizadores.
Para obter mais informações, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
827659
(http://support.microsoft.com/kb/827659/
)
Recebe um erro de "DllRegisterServer" quando tenta registar uma DLL utilizando a ferramenta Regsvr32.exe
327219
(http://support.microsoft.com/kb/327219/
)
Collaboration data objects para o Windows NT, para o Windows 2000 e para o 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/
)
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
O que podemos fazer para melhor estas informações?
Para proteger a sua privacidade, não inclua as informações de contacto nos comentários.
Obrigado! Os seus comentários serão utilizados para nos ajudar a melhorar o conteúdo do suporte. Para obter mais opções de assistência, visite a Home Page da Ajuda e Suporte.