`
hududanyzd
  • 浏览: 815605 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

在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 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文件中配置如下:






分享到:
评论

相关推荐

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

    在这篇文章中,作者主要介绍的是使用Webmail方式发送邮件的方法。使用这种方式发送邮件通常需要进行授权认证,否则无法成功发送。例如使用Gmail账户发送邮件时,除了需要用户名和密码进行验证外,还会有每日发送邮件...

    C# 开源hmailserver免费邮箱 webmail asp.net

    综合以上信息,我们可以理解这个项目是一个使用C#和ASP.NET技术,基于开源的hMailServer搭建的免费邮箱系统,并且提供了一个Webmail应用,用户可以通过Web界面访问邮件。开发者可以利用提供的文档和资源进行安装、...

    基于POP协议的C#邮件接收程序

    此外,如果要实现邮件发送功能,可以使用`SmtpClient`类,同样在`System.Net.Mail`命名空间中。配置SMTP服务器信息后,创建`MailMessage`对象来设置发件人、收件人、主题和正文,然后通过`SmtpClient`发送邮件。 ``...

    C#邮件接收与发送程序

    在C#编程中,开发邮件接收与发送程序是一项常见的任务,可以用于自动化处理电子邮件或构建企业级的邮件系统。在本教程中,我们将探讨如何利用LumiSoft.Net和System.Net.Mail这两个库来实现这一功能,并将邮件信息...

    c#.net收发邮件系统源码(jmail组件开发)

    在C#.NET环境中,开发一个收发邮件系统是一项常见的任务,尤其对于企业级应用来说,邮件功能是必不可少的。这个项目使用了JMail组件来实现邮件的发送和接收,同时将接收到的邮件写入数据库,确保数据的安全性和可...

    c#Web Mail c#Web Mail c#Web Mail

    1. **SmtpClient类**:这个类是C#中发送邮件的核心,它可以设置SMTP服务器地址、端口、认证方式(如基本身份验证、NTLM或Kerberos)等。例如: ```csharp SmtpClient smtp = new SmtpClient("smtp.example.com", 587...

    很好的WEBMail系统

    【标题】"很好的WEBMail系统"所指的是一款基于C#开发的Web邮件服务系统,它允许用户通过网页浏览器访问和管理电子邮件。这样的系统对于那些希望在网站上提供邮件服务或者构建内部通信平台的开发者来说非常有用。C#是...

    asp.net 几个邮件系统 源代码

    这些源代码提供了实现邮件发送、接收和管理功能的详细实现,可以帮助开发者快速构建自己的邮件服务或集成到现有项目中。以下是对这些源代码及其相关知识点的详细说明: 1. **SharpWebMail**: 这是一个使用C#编写的...

    毕业答辩-ASP.NET基于Web Mail收发系统设计与开发(源代码论文).rar

    4. **SmtpClient类**:用于发送邮件,它负责与SMTP(简单邮件传输协议)服务器通信,将邮件发送到指定的收件人。 5. **身份验证**:Web Mail系统通常需要用户登录,因此涉及身份验证机制,如Forms Authentication,...

    关于邮件服务器的设计报告

    这个Webmail系统旨在提供功能完善的邮件服务,包括发送、接收、存储和管理电子邮件。数据库方面,最初设计使用MySQL,但最终选择了SQL_Server作为后台数据存储的主要支持。 邮件服务器的核心在于它与数据库的交互。...

    MailHelper.dll

    使用C#写的邮件发送帮助类。

    ASP.net开发的web邮箱

    此外,项目可能还依赖于一些NuGet包,如Entity Framework用于ORM(对象关系映射),或者MailKit/MimeKit用于处理邮件协议,如SMTP(发送)、IMAP(接收)和POP3(接收)。 总的来说,"ASP.NET开发的Web邮箱"是一个...

    email系统一个很好用的系统就是简单了点

    文件名“C#081206-TreeView的应用实例图像浏览”可能指的是使用C#编程语言实现的一个功能,即在TreeView控件中展示电子邮件的结构,例如,以树状形式显示邮件的文件夹层次和邮件列表,同时可能包含了图像预览的功能...

    asp.net学习笔记

    2. **NET_WEBMAIL**:NET_WEBMAIL可能是.NET平台下用来处理邮件发送的类库,它简化了邮件发送过程,封装了SMTP协议的具体实现,使开发者能更专注于业务逻辑而不是底层通信细节。 3. **接口与抽象类**:"你必须知道...

    基于Java电子邮件系统毕业设计(论文)(20210318185929).pdf

    Webmail通常需要支持标准的邮件协议如POP3(邮局协议版本3)和IMAP(互联网消息访问协议)来实现邮件的接收和发送功能。 2. **C/S架构和B/S架构**: - C/S(客户端/服务器)架构是早期的网络应用模型,依赖于...

    MVC3新特性

    `WebMail` 辅助方法发送电子邮件等。 通过这些新特性,MVC 3 提升了开发效率,增强了代码的可读性和可测试性,使得 ASP.NET MVC 成为了构建 Web 应用程序的强大工具。开发者可以通过利用这些新功能,编写出更高效、...

    improved-octo-parakeet:简单的ASP.NET应用程序,演示数据操作和验证

    改良八面鹦鹉 一个简单的ASP.NET应用程序,用于演示数据操作和验证。 .NET Framework 4.5.1;...请注意:为了使应用程序发送电子邮件,您需要使用WebMail帮助器;否则,您将无法使用它。 在Thanks.cshtml文件中 例子:

Global site tag (gtag.js) - Google Analytics