在.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 " );
, " 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 下发送邮件的方式请参考:
http://blog.joycode.com/joy/archive/2004/01/14/11405.aspx
.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); }
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 等属性,方便的支持各种情况下发送邮件的方式。