手机
当前位置:查字典教程网 >编程开发 >C#教程 >c#利用webmail邮件系统发送邮件示例分享
c#利用webmail邮件系统发送邮件示例分享
摘要:在C#中发送邮件的方式有2种,一种是使用webmail方式进行发送,另外一种就是采用netmail发送的方式,在采用这2种方式发送邮件时,如...

在C#中发送邮件的方式有2种,一种是使用webmail方式进行发送,另外一种就是采用netmail发送的方式,在采用这2种方式发送邮件时,如果采用公用的邮件服务器(如126邮件服务器,Sina的邮件服务器)都是需要授权认证才能够发送,如果是采用Gmail的话,还会有每天发送邮件的数量等限制。这2种方式是经过我测试通过了的代码,只需要将邮件的用户名和密码修改成自己的即可,同时也可以修改邮件服务器,改成自己配置的邮件服务器。

复制代码 代码如下:

/// <summary>

/// 发送Email(带验证,采用微软新推荐的方式)

/// </summary>

/// <param name="strTo">收件Email</param>

/// <param name="strCc">抄送Email</param>

/// <param name="strSubject">标题</param>

/// <param name="strBody">内容</param>

/// <param name="UserName">邮箱验证帐号(与web.config里配置的帐号要一样)</param>

/// <param name="from">发信人邮箱,要与UserName对应</param>

/// <param name="strErrorMsg">错误消息</param>

/// <returns></returns>

public static bool WebSendEmail(string strTo, string strCc, string strSubject, string strBody, ref string strErrorMsg)

{

System.Web.Mail.MailMessage message = new System.Web.Mail.MailMessage();

System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*");

bool bState = false;

string strSMTPServer = "";

try

{

strSMTPServer = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["SMTP"]);

strSMTPServer = strSMTPServer == "" ? "localhost" : strSMTPServer;

string strFromAddr = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["FromAddress"]);

if (reg.IsMatch(strFromAddr))

{

message.From = strFromAddr;

}

else

{

throw new Exception("The Email Address is wrong,Please reset the Email Address in the web.config file !");

}

string strTemp = "";

foreach (string str in strTo.Split(';'))

{

if (reg.IsMatch(str))

if (!strTemp.Contains(str))

strTemp += str + ";";

}

message.Cc = "";

foreach (string str in strCc.Split(';'))

{

if (reg.IsMatch(str))

if (!message.Cc.Contains(str))

message.Cc += str + ";";

}

message.Subject = strSubject;

message.BodyFormat = System.Web.Mail.MailFormat.Html;

message.Body ="<html><body>UtilMailMessage001"+ strBody+"- success</body></html>" ;

//下面这块是加载附件的方法

MailAttachment attachment1 =new MailAttachment(@"d:My Documentstest1.doc");

MailAttachment attachment2 =new MailAttachment("d:Documentstest2.doc");

message.Attachments.Add(attachment1);

message.Attachments.Add(attachment2);

message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");

message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");

//这里的邮箱帐号和密码一定要和下面配置文件中设置的邮箱的帐号和密码一致

message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "xxxxxxxxx");//邮箱帐号,比如Test11@126.com帐号为:Test11

message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "xxxxxxxx");//邮箱密码

//这个是指明邮件服务器的端口,可以不指定

//message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "25");

foreach (string str in strTemp.Split(';'))

{

if (reg.IsMatch(str))

{

message.To = str;

message.BodyEncoding = System.Text.Encoding.UTF8;

System.Web.Mail.SmtpMail.SmtpServer = strSMTPServer;

System.Web.Mail.SmtpMail.Send(message);

}

}

bState = true;

}

catch (Exception ex)

{

System.IO.File.AppendAllText("C:Mail_Log.ini", string.Format("{0:yyyy/MM/dd HH:mm:ss}rn{1}rnrn", DateTime.Now, ex.Message));

bState = false;

strErrorMsg = ex.Message;

}

return bState;

}

//测试发送邮件

protected void btnSend_Click(object sender, EventArgs e)

{

try

{

Email.SendEmail("xxxxxx@163.com", "", "Test Email", "Test Send Email");

}

catch (Exception ex)

{

Response.Write(ex.Message);

}

}

邮件在webconfig文件中配置如下:

c#利用webmail邮件系统发送邮件示例分享1

【c#利用webmail邮件系统发送邮件示例分享】相关文章:

C# 邮件发送和接收实现代码

C# 打开电子邮件软件的具体方法

c# 委托和事件实例学习

c# SendMail发送邮件实例代码

C# 动画窗体(AnimateWindow)的小例子

C# 利用StringBuilder提升字符串拼接性能的小例子

c# 递归访问文件夹(删掉歌词文件)

c# 引用类型与值类型的区别详解

利用thrift实现js与C#通讯的实例代码

c# 关闭窗体时提示的小例子

精品推荐
分类导航