在.Net Framework 1.x 我們需要使用 System.Web.Mail 命名空間下的類 來進(jìn)行發(fā)送郵件,但是功能比較弱,比如你的郵件服務(wù)器需要驗(yàn)證才能發(fā)送郵件,在.net 1.1 中,需要用下面的代碼來做額外配置。
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
, "1");
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername"
, "my_username_here");
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword"
, "super_secret");
.net 1.x 下發(fā)送郵件的方式請參考:
在.NET中使用SMTP發(fā)送郵件
MailMessage mail = new MailMessage();
mail.To = "me@mycompany.com";
mail.From = "you@yourcompany.com";
mail.Subject = "this is a test email.";
mail.Body = "Some text goes here";
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here"); //set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "super_secret"); //set your password here
SmtpMail.SmtpServer = "mail.mycompany.com"; //your real server goes here
SmtpMail.Send( mail );
.Net Framework 2.0 下,在 System.Net.Mail 命名空間中提供了對(duì)郵件操作的支持,他的功能更強(qiáng)大。比如你的郵件服務(wù)器需要驗(yàn)證才能發(fā)送郵件,代碼就只需簡單成如下:
public static void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
{
System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
System.Net.Mail.MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody);
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
client.Send(message);
}
我們可以通過修改 UseDefaultCredentials Credentials DeliveryMethod 等屬性,方便的支持各種情況下發(fā)送郵件的方式。