Comment puis-je rendre SMTP authentifié en C #

Je crée une nouvelle application Web ASP.NET qui utilise SMTP pour envoyer un message. Le problème est que le smtp n’a pas été authentifié de qui envoie le message.

Comment puis-je rendre SMTP authentifié dans mon programme? C # a-t-il une classe qui possède un atsortingbut pour entrer le nom d’utilisateur et le mot de passe?

using System.Net; using System.Net.Mail; using(SmtpClient smtpClient = new SmtpClient()) { var basicCredential = new NetworkCredential("username", "password"); using(MailMessage message = new MailMessage()) { MailAddress fromAddress = new MailAddress("from@yourdomain.com"); smtpClient.Host = "mail.mydomain.com"; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = basicCredential; message.From = fromAddress; message.Subject = "your subject"; // Set IsBodyHtml to true means you can send HTML email. message.IsBodyHtml = true; message.Body = "

your message body

"; message.To.Add("to@anydomain.com"); try { smtpClient.Send(message); } catch(Exception ex) { //Error, could not send the message Response.Write(ex.Message); } } }

Vous pouvez utiliser le code ci-dessus.

Assurez-vous de définir SmtpClient.Credentials après avoir appelé SmtpClient.UseDefaultCredentials = false .

L’ordre est important car la définition de SmtpClient.UseDefaultCredentials = false réinitialisera SmtpClient.Credentials sur null.

Définissez la propriété Credentials avant d’envoyer le message.

Pour envoyer un message via TLS / SSL, vous devez définir Ssl de la classe SmtpClient sur true.

 ssortingng to = "jane@contoso.com"; ssortingng from = "ben@contoso.com"; MailMessage message = new MailMessage(from, to); message.Subject = "Using the new SMTP client."; message.Body = @"Using this new feature, you can send an e-mail message from an application very easily."; SmtpClient client = new SmtpClient(server); // Credentials are necessary if the server requires the client // to authenticate before it will send e-mail on the client's behalf. client.UseDefaultCredentials = true; client.EnableSsl = true; client.Send(message); 

Comment envoyez-vous le message?

Les classes de l’ System.Net.Mail noms System.Net.Mail (probablement ce que vous devez utiliser) prennent entièrement en charge l’authentification, spécifiée dans Web.config ou utilisant la propriété SmtpClient.Credentials .

Dans mon cas même après avoir suivi tout ce qui précède. J’ai dû mettre à niveau mon projet de .net 3.5 à .net 4 pour autoriser notre serveur de messagerie Exchange 2010 interne.