Acabei de ver um artigo sobre envio de e-mails no .NET "Enviando e-mails de páginas asp.net" e vi que as classes no namespace System.Web.Mail ainda são usadas. Todos nós sabemos que no .NET 1.1, a maioria das classes neste namespace são usadas para enviar e-mails. Usar o método estático Send do SmtpMail pode enviar e-mails facilmente, mas como essa classe chama operações no Windows 2000 e superior, o componente CDO do sistema. é usado para enviar e-mails. Não importa qual seja o erro, ele avisará que o objeto CDO.Message não pode ser acessado ou outras exceções CDO.Message Não podemos obter informações de exceção muito detalhadas, o que traz grandes transtornos à nossa depuração. Especialmente quando precisamos de verificação Smtp, temos que adicionar três definições de cabeçalho de email ao MailMessage, o que é relativamente problemático. Pois bem, no .NET 2.0, a função de envio de e-mails foi muito bem desenhada. O uso das classes do espaço System.Net.Mail nos permite enviar vários e-mails de forma muito simples. Porém, para ser compatível com a versão original, o espaço System.Web.Mail não foi excluído e as classes neste espaço também foram marcadas com Obsoleto. Se você usar classes .NET 2.0 para compilar, você será. solicitado a usar a classe de espaço System.Web.Mail.
Agora vamos dar uma olhada no que precisa ser feito para enviar e-mails. Aqui também encontrei um artigo no jardim sobre o envio de e-mails do .NET 2.0, "Componente de envio de e-mail baseado no namespace .NET 2.0 System.Net.Mail". enviar e receber correspondência. Neste artigo, discutimos apenas como enviá-lo. Sinto que realmente não usa o arquivo de configuração. Também precisamos especificar algumas informações da conta Stmp para o SmtpClient. Na verdade, só precisamos configurar a conta Smtp que usaremos por meio do web.config (ou app.config):
<configuration>
<system.net>
<mailSettings>
<. smtp de =" [email protected] ">
<network host="smtp.tom.com" password=" " port="25" userName="hjf1223" defaultCredentials="false"/>
</smtp>
</mailSettings >
</system.net>
</configuration>
O sistema de configuração do .NET 2.0 é tão poderoso que podemos escrever a configuração acima de forma muito simples, sem nos referirmos a nenhuma informação. Como acima, o atributo from é a caixa de correio da qual você enviará o e-mail, e o host é o endereço do servidor SMTP. Escusado será dizer que a senha, a porta e o nome de usuário precisam ser anotados. Quanto aos defaultCredentials, você precisa prestar atenção. para ele. Quando não precisamos do servidor SMTP para verificar o usuário remetente, defina-o como falso, caso contrário, defina-o como verdadeiro. A maioria dos servidores SMTP atuais exige autenticação do usuário, portanto, geralmente defina-o como verdadeiro e deixe-o usar o nome de usuário e a senha. configuramos para verificar se é um usuário legítimo.
Depois que o arquivo de configuração for escrito, o próximo passo é como chamar o programa. Depois de escrever o seguinte para enviar o e-mail, você se sentirá muito estranho. Sim, é simples assim, vamos dar uma olhada:
MailMessage m_message = new MailMessage(
; "));
m_message.Subject = "Enviar e-mail usando .NET 2.0";
m_message.Body = "Muito simples";
SmtpClient m_smtpClient = new SmtpClient();
m_smtpClient.Send(m_message);
Não temos nem um único extra linha de código, que é Construir um objeto MailMessage, depois construir um SmtpClient e usá-lo para enviar e-mails diretamente. Comparado com o método estático original, não há mais código. Alguns amigos aqui podem querer perguntar? De onde vêm as informações da conta SMTP? Na verdade, você pode depurá-lo. Neste momento, os atributos no objeto m_smtpClient são os valores configurados em nosso arquivo de configuração anterior. Ao reconfigurar um SmtpClient, o valor na seção de configuração do system.net será lido automaticamente. Se o usuário tiver configurado as informações de smtp, elas serão automaticamente transferidas para o objeto SmtpClient atual e, em seguida, usadas para enviar e-mails. Enviar e-mail no .NET 2.0 dá muito trabalho e é muito estável.
Resumo: Embora no .NET 2.0, seja muito simples usar System.Web.Mail para enviar e-mails, e você pode obter informações de exceção mais detalhadas quando ocorrem erros, mas às vezes os problemas podem deixá-lo confuso. O mais comum que acontece é que quando sua máquina possui um firewall antivírus instalado, você pode não conseguir enviar e-mails, mas a mensagem de prompt impede que você diagnostique o problema. O principal efeito é que o e-mail seja recusado. Esta situação ocorre porque o firewall recusa o uso da porta 25, resultando na impossibilidade de comunicação normal com o servidor SMTP. A solução é fechá-lo. Acredito que haja muitos casos na Internet. Outro ponto que merece atenção especial é que a máquina para enviar e-mails deve estar conectada diretamente à rede externa. Como a empresa acessa a Internet por meio de um proxy, isso é particularmente impressionante. Há mais uma coisa a ser observada no código acima. O valor From do objeto MailMessage deve ser igual ao valor From no arquivo de configuração.
Ok, aqui está o código, espero que possa ser útil para você http://hjf1223.cnblogs.com/archive/2006/07/06/444716.html