我创建了一个新ASP.NET web应用程序,它使用SMTP发送消息。问题是发送邮件的人没有对smtp进行身份验证。
如何在我的程序中对SMTP进行身份验证?C#是否有一个具有输入用户名和密码属性的类?
发布于 2008-11-18 10:29:41
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 = "<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);
}
}
}
你可以使用上面的代码。
发布于 2008-11-18 10:32:23
在发送消息之前设置Credentials属性。
发布于 2017-11-01 17:15:49
要通过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);
https://stackoverflow.com/questions/298363
复制相似问题