Artigo: 555287 - Última revisão: quinta-feira, 7 de Abril de 2005 - Revisão: 1.0

Como activar autenticação SMTP utilizando System.Web.Mail

Author: Carlos Walzer MVP
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.
Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como enviar mensagens de correio electrónico a partir de uma aplicação.NET através de um servidor de SMTP que requer autenticação.

Sintomas

Exchange Server requer, por predefinição, Utilizadores autenticados para enviar mensagens de correio electrónico através de SMTP. Se estiver a desenvolver uma aplicação.NET você encontrará System.Web.Mail que não contém uma API que permite-lhe fornecer credenciais para estabelecer ligação com um servidor de SMTP. System.Web.Mail internamente chama Microsoft Collaboration Data Objects CDOSYS «. Autenticação SMTP é possível definindo definições de configuração utilizando o objecto de configuração associado ao objecto CDO Message .
 

Mais Informação

O espaço de nomes System.Web.Mail fornece uma API que permite-lhe criar e enviar mensagens que utilizam o componente mensagem CDOSYS (objectos de dados de colaboração para Windows 2000). A mensagem de correio é entregue através de um servidor de SMTP.
A maior parte das instalações servidores SMTP requer autenticação. O reasoning para isto é devido a pessoas abuse servidores SMTP para SPAMing principal (ou seja, enviar correio publicitário não solicitado).
As classes de espaço de nomes System.Web.Mail não expor uma API para fornecer Credenciais para um servidor SMPT. Mesmo assim pode conseguir isto definindo definições de configuração para o objecto ' configuração associado para o CDO Message . São constituídas por um conjunto de Campos (Propriedades) que são pares nome / valor simplesmente as definições de configuração. A maior parte dos campos de configuração utilizados para o processamento de mensagens encontram o http://schemas.microsoft.com/cdo/configuration/ Espaço de nomes.
Pode definir campos para a mensagem, adicionando-à colecção System.Web.Mail.MailMesage.Fields .
 
Campos do CDO para configurar AuthenticationTo SMTP configurar objectos mensagem, que modificar campos no objecto de configuração associado. A maior parte dos nomes de campo residem no http://schemas.microsoft.com/cdo/configuration/ Espaço de nomes:
  • SmtpServer : nome do servidor SMTP.
  • smtpserverport : Porta do servidor SMTP (predefinido: 25).
  • SendUsing : cdoSendUsingPort, valor 2, para enviar a mensagem utilizando a rede.
  • smtpauthenticate : especifica o mecanismo utilizado quando procede à autenticação perante o serviço SMTP através da rede. Os valores possíveis são::
    -cdoAnonymous , valor 0. Não autenticar.
    -cdoBasic , valor 1. Utilizar a autenticação básica de texto simples . Ao utilizar esta opção tem de fornecer o nome de utilizador e palavra-passe através dos campos sendusername e sendpassword .
    -cdoNTLM , valor 2. O actual contexto de segurança do processo é utilizado para autenticar com o serviço.
  • sendusername : nome de utilizador
  • sendpassword : palavra-passe

 
Exemplo
O exemplo que se segue mostra como proceder ao envio uma mensagem de correio electrónico através de um servidor de SMTP que requer o servidor de autenticação através da rede, fornecendo credenciais no texto palavra-.
 
using System;
using System.Web.Mail;
namespace SMTPAuthentication
{
 public class SMTPAuthenticationExample
 {
  public static void SendMail()
  {
   string smtpServer = "smtp.domain.com";
   string userName = "johnDoe";
   string password = "pass";
   int cdoBasic = 1;
   int cdoSendUsingPort = 2;
   MailMessage msg = new MailMessage();
   if (userName.Length > 0)
   {
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", smtpServer);
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25) ;
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", cdoSendUsingPort) ;
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", cdoBasic);
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", userName);
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password); 
   }
   msg.To = "someone@domain.com";
   msg.From = "me@domain.com";
   msg.Subject = "Subject";
   msg.Body = "Message";
   SmtpMail.SmtpServer = smtpServer;
   SmtpMail.Send(msg);
  }
 }
}
 
Nota: as classes no espaço de nomes System.Web.Mail podem ser utilizados a partir do ASP.NET ou a partir de qualquer aplicação gerida. Certifique-se que o projecto referencia a interoperabilidade System.Web.dll .
 
Referências:
Para mais informações sobre Collaboration Data Objects visita:
http://msdn.microsoft.com/library/en-us/exchanchor/htms/msexchsvr_cdo_top.asp
 
Para mais informações sobre o System.Web.Mail espaço de nomes visite:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebmail.asp

A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.1
Palavras-chave: 
kbpubmvp kbpubtypecca kbhowto KB555287 KbMtpt kbmt
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 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). Pedíamos-lhe o favor de preencher o formulário existente no fundo desta página caso tenha encontrado erros neste artigo e tenha possibilidade de colaborar no processo de aperfeiçoamento desta ferramenta. Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 555287  (http://support.microsoft.com/kb/555287/en-us/ )
Community Solutions ContentCOMMUNITY SOLUTIONS CONTENT DISCLAIMER
MICROSOFT CORPORATION AND/OR ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY, RELIABILITY, OR ACCURACY OF THE INFORMATION AND RELATED GRAPHICS CONTAINED HEREIN. ALL SUCH INFORMATION AND RELATED GRAPHICS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT AND/OR ITS RESPECTIVE SUPPLIERS HEREBY DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THIS INFORMATION AND RELATED GRAPHICS, INCLUDING ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, WORKMANLIKE EFFORT, TITLE AND NON-INFRINGEMENT. YOU SPECIFICALLY AGREE THAT IN NO EVENT SHALL MICROSOFT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, SPECIAL, CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF USE, DATA OR PROFITS, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE USE OF OR INABILITY TO USE THE INFORMATION AND RELATED GRAPHICS CONTAINED HEREIN, WHETHER BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, EVEN IF MICROSOFT OR ANY OF ITS SUPPLIERS HAS BEEN ADVISED OF THE POSSIBILITY OF DAMAGES.