Pergunta

Alguém pode recomendar um software ou um .Biblioteca de rede que irá verificar emails e razão para a rejeição?Eu recebo emails para uma conta pop3 que eu posso ler em seguida.

Eu preciso manter a minha usuário de banco de dados limpo de endereços de email inválidos e deseja automatizar esse (marcos usuário como inválido e-mail).

Foi útil?

Solução

Eu tenho feito um grande trabalho de manipulação de rejeição e-mails e há diferentes tipos.Se você quiser ter certeza absoluta de que o email, o seu olhar é realmente uma rejeição de um determinado tipo, eu recomendo a obtenção de um bom filtro.Eu tenho trabalhado com Boogie Ferramentas e isso funcionou muito bem.Ele permite que você saiba que tipo de rejeição é, Duro, Macio, Transitória ou se o mesmo alguém tentando cancelar a assinatura.Ele tem uma muliple API, incluindo .Net e achei muito fácil para começar a trabalhar.

Outras dicas

como abfo diz, o protocolo POP3 é super simples, recebendo as mensagens é um acéfalo.Analisar as mensagens para obter as falhas é mais difícil, e de forma fiável de análise de qual e-mail causou a falha e o motivo da falha é realmente difícil.O problema é que a rejeição de mensagens não tem um formato padrão, o padrão de formulários variam de MTA MTA.Em seguida, o motivo da falha pode ser ajustado pelo administrador do site tornando-o mais difícil de reconhecer, e o administrador do site pode modificar a mensagem de falha do modelo, o que torna danado perto de impossível.

Veja se você pode encontrar uma .NET gerenciador de lista de endereçamento e se você pode remodelar a rejeição de código de manipulação.Falhando isso, veja se você pode alterar a ferramenta de envio de mensagens para enviar cada mensagem de correio electrónico a partir de um único (e reversível) enveloper remetente (VERP eu acho que é chamado?).Dessa forma, você não precisa escanear o corpo do e-mail, você pode dizer que o destinatário falhou examinando o endereço do destinatário da mensagem de falha.

É muito fácil de fazer com um TcpClient.Abrir o servidor:

TcpClient tcpClient = new TcpClient();
tcpClient.Connect(POP3Server, POP3Port);
NetworkStream stream = tcpClient.GetStream();

Leia a mensagem de boas-vindas:

int read = stream.Read(inBuffer, 0, inBuffer.Length);
string response = Encoding.ASCII.GetString(inBuffer, 0, read);
if (response.IndexOf("+OK") != 0) throw new ...;

Escrever de volta para o servidor:

byte[] outBuffer = Encoding.ASCII.GetBytes("USER " + account + "\r\n");
stream.Write(outBuffer, 0, outBuffer.Length);

Que envia o comando de UTILIZADOR.Você precisa fazer o login e, em seguida, você pode começar a agarrar as mensagens - ver a POP3 RFC para a lista completa de comandos.Se você não está procurando lançar o seu próprio check-out deste CodeProject artigo.

Obrigado pela resposta, ótimo!Eu fiz algumas pesquisas e encontrou-me ListNanny - também super simples de usar e informa o tipo de rejeição.Vai escrever alguma prova de conceito e ver qual eu gosto mais...

Sua pergunta me fez perceber que o Wordpress Newsletter plugin que eu ia usar, não tem rejeição de gestão, e eu precisaria de algo assim.

Eu olhei ao redor por algum tempo, e estabeleci livres e de código-fonte aberto PHPlist gerenciador de newsletter.

Eles descrevem em detalhe suas configurações para o manuseio de devoluções e eles têm um experimentais avançado de rejeição de recurso de manipulação de que permitirá a você personalizar o tratamento de rejeição exatamente do jeito que você quer.

Evem se você decidir não usar o PHPlist, a leitura como eles fazem isso será útil informações para você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top