Uma das perguntas mais comuns que vejo nos fóruns ASP.NET está relacionada ao envio de e-mail. Já abordei muitos desses problemas, então não vou entrar em como enviar email de um site ASP.NET.
Esta semana tenho trabalhado em aplicativos de teste e tive a oportunidade de conhecer Donovan Brown , agora com a Microsoft. Donovan é tudo sobre testes e tem algumas ferramentas fantásticas para testar todos os aspectos dos aplicativos e é um louco por Team System !! Esta tarde eu estava tendo uma ótima conversa quando ele mencionou que criou um pequeno servidor SMTP para testar a funcionalidade de e-mail chamada Neptune .
Tudo que você precisa fazer é baixar o Neptune do Blog do Donovan, executar o instalador e executar o Neptune sempre que precisar de um servidor SMTP para receber e-mails enviados de seu aplicativo.
Você pode definir explicitamente o servidor SMTP no SMTPClient ou no web.config como’localhost’ou’127.0.0.1’e o e-mail será enviado ao Neptune. Ele não processa realmente a mensagem, apenas a consome. Portanto, ele não retransmite a mensagem em qualquer lugar e você não precisa ter um endereço de e-mail predefinido configurado. É realmente apontar e disparar. Cada vez que uma mensagem é enviada ao Neptune, ela aumenta a contagem de mensagens. Ele pode ser reiniciado a qualquer momento ou interrompido. Parar o servidor SMTP é importante para garantir que seu aplicativo falhe normalmente quando não puder alcançar o servidor SMTP de destino.
O Neptune oferece suporte a comandos de RFC 821 e 2821; HELO, EHLO, MAIL, RCPT, DATA, NOOP, RSET e QUIT. Ele também armazena as mensagens na memória para que você possa interrogá-las com sua estrutura de teste, como um Teste da Web do Visual Studio. Também acompanham regras de plug-in, extração e validação incluídas no Neptune.
A porta 525 é usada para fins administrativos. Há documentação completa incluída com a instalação que detalha tudo sobre como administrar o servidor, testes, etc.
O que o Neptune não é ou não faz, retransmitiremos o e-mail para um. Ele não simula códigos de resposta do servidor de destino. Por exemplo, digamos que a mensagem não foi entregue porque o endereço de destino não existe ou a caixa de entrada está cheia.
Apesar dessas limitações, acho que isso é obrigatório para os desenvolvedores de software em suas máquinas de desenvolvimento. Embora eu tenha meu próprio servidor de e-mail à minha disposição, realmente gosto da ideia de ter meu próprio pequeno servidor de teste SMTP.