.net 2.0下发送邮件的方式与.net1.0的比较

2010-08-28 10:50:44来源:西部e网作者:

在.Net Framework 1.x 我们需要使用 System.Web.Mail 命名空间下的类 来进行发送邮件,但是功能比较弱,比如你的邮件服务器需要验证才能发送邮件,在.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 下发送邮件的方式请参考:
在.NET中使用SMTP发送邮件

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 命名空间中提供了对邮件操作的支持,他的功能更强大。比如你的邮件服务器需要验证才能发送邮件,代码就只需简单成如下:

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  等属性,方便的支持各种情况下发送邮件的方式。
关键词:dotnet