linux webmail发送邮件,C# 邮件发送方法【webMail方式】

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

///

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

///

/// 收件Email

/// 抄送Email

/// 标题

/// 内容

/// 邮箱验证帐号(与web.config里配置的帐号要一样)

/// 发信人邮箱,要与UserName对应

/// 错误消息

///

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 ="

UtilMailMessage001"+ strBody+"- success" ;

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

MailAttachment attachment1 =new MailAttachment(@"d:\My Documents\test1.doc");

MailAttachment attachment2 =new MailAttachment("d:\\Documents\\test2.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}\r\n{1}\r\n\r\n", 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文件中配置如下:

1fc538c3b740c039440e706ddde5ff59.gif0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值