前几天研究了一下asp.net下怎么发送邮件,今天总结了一下,希望大家多多指点哈
发送邮件就类似找回密码功能那样。下面先贴出用System.Net.Mail发送邮件,这个是我测试成功的。代码:
MailAddress from = new MailAddress("*******@126.com");//发件人地址
MailAddress to = new MailAddress("*********@qq.com");//收件人地址
MailMessage message = new MailMessage(from,to);
message.Subject = "*********";
message.Body = "****************------------------";
message.IsBodyHtml = false;
message.Priority = MailPriority.High;
SmtpClient sc = new SmtpClient("smtp.126.com",25);//指定发送服务器,如果是公司内网,换成公司的邮箱地址就可以
sc.UseDefaultCredentials = false;
//sc.EnableSsl = true;
sc.Credentials = new NetworkCredential("用户名", "密码");//登陆服务器的用户名和密码
//sc.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
//sc.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;//iis通过iis自带的smtp服务器发送邮件
sc.DeliveryMethod = SmtpDeliveryMethod.Network;//network通过网络发送邮件
try
{
sc.Send(message);
}
catch (SmtpException ex)
{
ex.ToString();
}
这段代码是经我测试成功发送的,不过是内网还是外网都可以成功发送。
但是还有使用System.Web.Mail发送邮件,我试了一下,没有成功,原因可能是这种方式已经过时,希望懂的朋友给我解释一下哈。代码如下:
string mailFrom = "*******@126.com";//发件人地址
string mailTo = "********@126.com";//收件人地址
string mailSubject = "找回密码";//邮件主题
string mailBody = "123456";//邮件内容
string sendServer = "smtp.126.com";//smtp服务器
string sendUser = "****";//用户名
string sendPwd = "密码";//密码
MailMessage mail = new MailMessage();
mail.From = mailFrom;
mail.To = mailTo;
mail.Subject = mailSubject;
mail.Body = mailBody;
mail.Priority = MailPriority.High;
mail.BodyEncoding = Encoding.UTF8;
mail.BodyFormat = MailFormat.Html;
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1);
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusername",sendUser);
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtppassword", sendPwd);
SmtpMail.SmtpServer = sendServer;
try
{
SmtpMail.Send(mail);
}
catch (HttpException ex)
{
ex.ToString();
}
希望朋友多多指点。。。。