当前位置:  编程技术>.net/c#/asp.net

c#使用webmail邮件系统发送邮件的代码

    来源: 互联网  发布时间:2014-08-30

    本文导语:  在C#中发送邮件的方式有2种: 一种是使用webmail方式进行发送; 一种就是采用netmail发送的方式。 本文介绍下使用c#使用webmail方式发送邮件的方法。   在C#中发送邮件,如果采用公用的邮件服务器(如126邮件服务器,Sina的邮...

在C#中发送邮件的方式有2种:
一种是使用webmail方式进行发送;
一种就是采用netmail发送的方式。

本文介绍下使用c#使用webmail方式发送邮件的方法。
 
在C#中发送邮件,如果采用公用的邮件服务器(如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 Documentstest1.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}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文件中配置:


    
 
 

您可能感兴趣的文章:

  • 在LINUX环境下,怎样限定SendMail邮件服务器中邮件用户使用邮件空间的大小。。。。。。
  • 怎么使用outlook一类的客户端接收远程linux的系统邮件
  • c#使用S22.Imap收剑灵激活码邮件代码示例(imap收邮件)
  • 为什么sendmail不能使用outlook发送邮件??? help!!!!!
  • redhat 9下面装了postfix,但怎么使用阿.怎么用它来发送邮件?
  • 请问使用JavaMail如何将一个邮件原样转发给另外一个人?
  • 请问使用JavaMail如何将一个邮件原样转发给另外一个人?
  • asp里面可否使用java写的邮件,给30分.
  • 可以使用shell编程完成发送邮件的功能吗?
  • 如何使用jsp发送邮件
  • 关于在solaris10下使用sendmail发送邮件没有主题的问题?
  • 如何使用telnet mail.domain.com 25 判断一个某个邮件大地址是否存在
  • shell中使用mail发邮件的时候正文换行的问题
  • 请问15000人使用的邮件服务器用哪种比较好啊?
  • 我要在LINUX(REDHAT)下安装邮件系统,但是提示我SMTP端口和POP3端口正在使用中,该如何?
  • c#使用netmail发送邮件的例子
  • c#使用netmail方式发送邮件示例
  • 使用sqlserver存储过程sp_send_dbmail发送邮件配置方法(图文)
  • 六篇啊。大家帮帮忙。关于ftp、telnet、dns、email、邮件列表、新闻组的文章。我想要长篇大论比较书面的那种。不是只要些使用说明。要交
  • 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
  • c#中SAPI使用总结——SpVoice的使用方法
  • c#友好显示日期 c#日期datetime使用方法
  • 请问在工作岗位的朋友!使用java开发的公司对c#的态度如何?
  • c#自带缓存使用方法 c#移除清理缓存
  • C#中的switch case使用介绍
  • c# 空合并运算符“??”的使用详解
  • 使用C#实现在屏幕上画图效果的代码实例
  • 深入C#中使用SqlDbType.Xml类型参数的使用详解
  • c#闭包使用方法示例
  • c# split分隔字符串使用方法
  • c#的params参数使用示例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • 使用了QWidget的程序,如何使用后台程序启动它?
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 共享内存一般是怎么使用的,是同消息队列配合使用么
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • Jsp可否使用带有GUI的JavaBean,如何使用?
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • asp程序使用的access在Linux下如何使用!
  • c/c++预处理命令预#,##使用介绍
  • 新装的Linux使用root用户不能使用FTP?
  • 在div中使用css让文字底部对齐的方法
  • LINUX下使用Eclipse,如何使用交叉编译器?
  • Python namedtuple(命名元组)使用实例
  • redhat9内存使用率高达73%,怎么查看内存具体使用情况


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3