我怎样才能使SMTPvalidation在C#
我创build了使用SMTP发送消息的新的ASP.NET Web应用程序。 问题是smtp没有通过谁发送消息进行身份validation。
我如何使我的程序中的SMTPvalidation? C#有一个类有input用户名和密码的属性吗?
using System.Net; using System.Net.Mail; SmtpClient smtpClient = new SmtpClient(); NetworkCredential basicCredential = new NetworkCredential("username", "password"); 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 = "<h1>your message body</h1>"; message.To.Add("to@anydomain.com"); try { smtpClient.Send(message); } catch(Exception ex) { //Error, could not send the message Response.Write(ex.Message); }
你可以使用上面的代码。
确保在调用SmtpClient.UseDefaultCredentials = false
后设置SmtpClient.Credentials
。
顺序非常重要,因为设置SmtpClient.UseDefaultCredentials = false
会将SmtpClient.Credentials
重置为null。
在发送消息之前设置Credentials属性。
你如何发送消息?
System.Net.Mail
命名空间中的类(可能是您应该使用的)完全支持身份validation,可以在Web.config中指定,也可以使用SmtpClient.Credentials
属性。
要通过TLS / SSL发送消息,您需要将SmtpClient类的Ssl设置为true。
string to = "jane@contoso.com"; string 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);