Os três principais níveis de validação de email:
1) verificação de expressão regular para um endereço de e-mail devidamente formatado [email protected]
2) verificar o domínio de e-mail em registros MX para ver se o nome do domínio tem um serviço de e-mail
3) enviando um email de confirmação com um link ou código de confirmação
Nível 1:
No Visual Studio, você pode usar o "Validador de expressões regulares". E na propriedade "ValidationExpression", você pode clicar no botão "..." que tem um assistente para adicionar no formato de expressão regular para endereços de e-mail.
Nível 2:
Aqui está o meu código c # abaixo para usar o nslookup para verificar se um domínio de e-mail tem registros MX válidos. Funciona rápido e bem no Win 2008 R2 e no Win 7.
using System.Net.Mail;
using System.Diagnostics;
public static bool checkMXRecords(string email)
{
MailAddress addr = new MailAddress(email);
string domain = addr.Host;
string command = "nslookup -querytype=mx " + domain;
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " + command);
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();
string result = proc.StandardOutput.ReadToEnd();
if (result.ToLower().Contains("mail exchanger"))
{
return true;
}
else return false;
} // checkMXRecords
outra opção é usar o pacote nuget do Arsofttools, mas pode ser lento no Windows Server 2008 R2, como eu experimentei, mas é executado rapidamente no Win 7.
Nível 3:
Para confirmação por e-mail, você pode gerar uma URL hexadecimal específica por e-mail (usando funções de criptografia) etc. link para validar a endereço de e-mail quando o usuário clica nele. Não há necessidade de armazenar este URL na memória.