mio codice di produzione per il nome utente e la convalida di password prima di inviare la posta:
public static bool ValidateCredentials(string login, string password, string server, int port, bool enableSsl) {
SmtpConnectorBase connector;
if (enableSsl) {
connector = new SmtpConnectorWithSsl(server, port);
} else {
connector = new SmtpConnectorWithoutSsl(server, port);
}
if (!connector.CheckResponse(220)) {
return false;
}
connector.SendData($"HELO {Dns.GetHostName()}{SmtpConnectorBase.EOF}");
if (!connector.CheckResponse(250)) {
return false;
}
connector.SendData($"AUTH LOGIN{SmtpConnectorBase.EOF}");
if (!connector.CheckResponse(334)) {
return false;
}
connector.SendData(Convert.ToBase64String(Encoding.UTF8.GetBytes($"{login}")) + SmtpConnectorBase.EOF);
if (!connector.CheckResponse(334)) {
return false;
}
connector.SendData(Convert.ToBase64String(Encoding.UTF8.GetBytes($"{password}")) + SmtpConnectorBase.EOF);
if (!connector.CheckResponse(235)) {
return false;
}
return true;
}
Maggiori dettagli nella risposta a una similar question.
Code on github
fonte
2016-03-20 09:06:52
avevo bisogno di sapere se la convalida può essere fatto. Come accade nella prospettiva di MS, prima di inviare mail, richiede username e password se è sbagliato. Volevo fare lo stesso nella mia applicazione. Apprezzo il tuo aiuto. –
In realtà qui c'è qualcosa di sbagliato. MS Outlook NON ti chiede prima di inviare e-mail.Ti chiede solo in 1 ocurance: non può autenticarsi. Ci prova se imposti il passord. Potrebbe chiederti se l'hai configurato per farlo. Ma è perfettamente felice di provare senza password in caso di dubbio. – TomTom