I need to validate the username and password set in an SmtpClient
instance before sending mail. Using this code:
SmtpClient client = new SmtpClient(host);
client.Credentials = new NetworkCredential(username,password);
client.UseDefaultCredentials = false;
// Here I need to verify the credentials(i.e. username and password)
client.Send(mail);
How can I validate whether the user identified by the credentials is allowed to connect and send a mail?
There is no way.
SmtpClient bascially can not validate the usernamepassword without contacting the serve it connects to.
What you could do is do it outside SmtpClient, by opening a TCP connection to the server... but authentication CAN be complicated depending how the server is configured.
May I ask WHY you need to know that before sending? normal behavior IMHO would be to wrap sending in appropriate error handling to catch exceptions here.