- 浏览: 76591 次
文章分类
- 全部博客 (48)
- AOP (0)
- ASP.NET (1)
- C# (0)
- Community Server (0)
- Database (0)
- Design Pattern (3)
- JAVA (1)
- JavaScript (1)
- Linux (1)
- O/R Mapping (0)
- OO (3)
- SQL Server (1)
- VB.NET (0)
- Visual Studio 2005 (2)
- Windows (2)
- WPF (0)
- XML/XSLT (0)
- 常用工具类 (0)
- 人生感悟 (0)
- 算法 (0)
- 转载 (5)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (3)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (15)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (2)
- [网站分类]4.其他技术区 (4)
- [网站分类]5.企业信息化 (0)
- [网站分类]6.读书心得区(技术书籍阅读心得、书籍推荐) (0)
- [网站分类]7.提问区(.NET技术方面的提问) (0)
- [网站分类]8.技术转载区(.NET技术文章转载, 请注明原文出处) (1)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [网站分类]Dottext区 (0)
- [网站分类]GIS技术 (0)
- [网站分类]IT英才专区(IT职场交流) (0)
- [网站分类]SharePoint (0)
- [网站分类]博客园.NET俱乐部(俱乐部组织与活动方面的文章) (0)
- [网站分类]软件发布区(发布自己开发的代码、软件) (0)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (0)
- [网站分类]业界新闻 (0)
最新评论
-
xjw1987524:
这个问题我是弄啦很久,我也试过反编译,不知道为什么就是不成功; ...
支持中文参数的 jspSmartUpload
.NET 1.1 下不使用 System.Web.Mail.SmtpMail 发送邮件的其它选择
最近工作原因需要维护 ASP.NET 1.1 的程序,本来用着 C# 2.0 System.Net.Mail namespace 发送邮件用得好好得,但 ASP.NET 1.1 里面的 System.Web.Mail 死活问题就是多,于是选择其它策略,封装了邮件发送的接口,再以其它方式来实现邮件发送,于是就有了下面这些文字。
定义抽象接口以封装所有实现:
using System;
using System.Web.Mail;
namespace YywMail
{
public abstract class MySmtpMail
{
Fields#region Fields
private string _defaultCharset = "GB2312";
private int _defaultSmtpPort = 25;
#endregion
Properties#region Properties
protected string DefaultCharset
{
get { return this._defaultCharset; }
}
protected int DefaultSmtpPort
{
get { return this._defaultSmtpPort;}
}
#endregion
Methods#region Methods
/**//// <summary>
/// 获取默认实例
/// </summary>
/// <returns></returns>
public static MySmtpMail GetDefaultInstance()
{
// 此处可通过外部配置文件定义具体实现类型,再
// 通过 Activator.CreateInstance() 获取类型实例
}
/**//// <summary>
/// 做一些初始化的工作
/// </summary>
public abstract void Open();
/**//// <summary>
/// 销毁对象
/// </summary>
public abstract void Close();
/**//// <summary>
/// 发送邮件
/// </summary>
/// <param name="message"></param>
/// <param name="smtpServer"></param>
/// <param name="serverUsername"></param>
/// <param name="serverPassword"></param>
/// <returns></returns>
public bool Send(MailMessage message, string smtpServer, string serverUsername, string serverPassword)
{
return Send(message, smtpServer, serverUsername, serverPassword, this._defaultSmtpPort);
}
public abstract bool Send(MailMessage message, string smtpServer, string serverUsername, string serverPassword, int smtpPort);
public static string[] GetTo(MailMessage message)
{
if (message == null)
throw new ArgumentNullException("message");
if (Globals.IsNullorEmpty(message.To))
return null;
return message.To.Split(';');
}
public static string[] GetCc(MailMessage message)
{
if (message == null)
throw new ArgumentNullException("message");
if (Globals.IsNullorEmpty(message.Cc))
return null;
return message.Cc.Split(';');
}
public static string[] GetBcc(MailMessage message)
{
if (message == null)
throw new ArgumentNullException("message");
if (Globals.IsNullorEmpty(message.Bcc))
return null;
return message.Bcc.Split(';');
}
#endregion
}
}
using System.Web.Mail;
namespace YywMail
{
public abstract class MySmtpMail
{
Fields#region Fields
private string _defaultCharset = "GB2312";
private int _defaultSmtpPort = 25;
#endregion
Properties#region Properties
protected string DefaultCharset
{
get { return this._defaultCharset; }
}
protected int DefaultSmtpPort
{
get { return this._defaultSmtpPort;}
}
#endregion
Methods#region Methods
/**//// <summary>
/// 获取默认实例
/// </summary>
/// <returns></returns>
public static MySmtpMail GetDefaultInstance()
{
// 此处可通过外部配置文件定义具体实现类型,再
// 通过 Activator.CreateInstance() 获取类型实例
}
/**//// <summary>
/// 做一些初始化的工作
/// </summary>
public abstract void Open();
/**//// <summary>
/// 销毁对象
/// </summary>
public abstract void Close();
/**//// <summary>
/// 发送邮件
/// </summary>
/// <param name="message"></param>
/// <param name="smtpServer"></param>
/// <param name="serverUsername"></param>
/// <param name="serverPassword"></param>
/// <returns></returns>
public bool Send(MailMessage message, string smtpServer, string serverUsername, string serverPassword)
{
return Send(message, smtpServer, serverUsername, serverPassword, this._defaultSmtpPort);
}
public abstract bool Send(MailMessage message, string smtpServer, string serverUsername, string serverPassword, int smtpPort);
public static string[] GetTo(MailMessage message)
{
if (message == null)
throw new ArgumentNullException("message");
if (Globals.IsNullorEmpty(message.To))
return null;
return message.To.Split(';');
}
public static string[] GetCc(MailMessage message)
{
if (message == null)
throw new ArgumentNullException("message");
if (Globals.IsNullorEmpty(message.Cc))
return null;
return message.Cc.Split(';');
}
public static string[] GetBcc(MailMessage message)
{
if (message == null)
throw new ArgumentNullException("message");
if (Globals.IsNullorEmpty(message.Bcc))
return null;
return message.Bcc.Split(';');
}
#endregion
}
}
注: 按照常理,使用前先 Open() 一下,使用后也别忘了 Close()
实现方案一(Jmail 组件):
在 .NET 中使用 Jmail 需要如下设置:
1、安装jmail;
2、找到jmail.dll;
3、注册该组件Jmail.dll,作法是将jmail.dll文件拷贝到system32目录下,再运行命令“regsvr32 jmail.dll”(不包括引号),卸载可运行“regsvr32 /u jmail.dll”;
4、执行Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin\ildasm.exe(可使用Visual Studio .Net 2003 命令提示),
格式如下:tlbimp c:\Program Files\Dimac\w3JMail4\jmail.dll /out:MyJmail.dll /namespace:MyJmail
生成MyJmail.dll后,将它引用至项目中。
下载组件
接下来就是实现类的编写了:
using System;
using System.Web.Mail;
namespace YywMail
{
public class JMailSmtpMail : MySmtpMail
{
Fields#region Fields
MyJmail.Message jmail = null;
#endregion
Methods#region Methods
public override void Open()
{
jmail = new MyJmail.Message();
}
public override bool Send(MailMessage message, string smtpServer, string serverUsername, string serverPassword, int smtpPort)
{
if (jmail == null)
throw new Exception("smtp is Closed!");
if (message == null)
throw new ArgumentNullException("message");
DateTime t = DateTime.Now;
//Silent属性:如果设置为true,JMail不会抛出例外错误. JMail. Send( () 会根据操作结果返回true或false
jmail.Silent = false;
//jmail创建的日志,前提loging属性设置为true
jmail.Logging = true;
//字符集,缺省为"US-ASCII"
jmail.Charset = base.DefaultCharset;
//信件的contentype. 缺省是"text/plain") : 字符串如果你以HTML格式发送邮件, 改为"text/html"即可。
if (message.BodyFormat == MailFormat.Html)
jmail.ContentType = "text/html";
jmail.Priority = GetJmailPriority(message.Priority);
//添加收件人
string[] toArray = MySmtpMail.GetTo(message);
if (toArray != null && toArray.Length > 0)
using System.Web.Mail;
namespace YywMail
{
public class JMailSmtpMail : MySmtpMail
{
Fields#region Fields
MyJmail.Message jmail = null;
#endregion
Methods#region Methods
public override void Open()
{
jmail = new MyJmail.Message();
}
public override bool Send(MailMessage message, string smtpServer, string serverUsername, string serverPassword, int smtpPort)
{
if (jmail == null)
throw new Exception("smtp is Closed!");
if (message == null)
throw new ArgumentNullException("message");
DateTime t = DateTime.Now;
//Silent属性:如果设置为true,JMail不会抛出例外错误. JMail. Send( () 会根据操作结果返回true或false
jmail.Silent = false;
//jmail创建的日志,前提loging属性设置为true
jmail.Logging = true;
//字符集,缺省为"US-ASCII"
jmail.Charset = base.DefaultCharset;
//信件的contentype. 缺省是"text/plain") : 字符串如果你以HTML格式发送邮件, 改为"text/html"即可。
if (message.BodyFormat == MailFormat.Html)
jmail.ContentType = "text/html";
jmail.Priority = GetJmailPriority(message.Priority);
//添加收件人
string[] toArray = MySmtpMail.GetTo(message);
if (toArray != null && toArray.Length > 0)
发表评论
-
获取某目录下的所有文件(包括子目录下文件)的数量(C#)
2005-11-04 17:27 3962以前写过一个通过计算目录遍历所有文件和子目录的方法来获得某目录 ... -
Visual Studio 2005 试用笔记
2005-11-06 21:36 896今天开始用上了 VS 2005 ... -
C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) 笔记
2005-11-09 22:52 1283(很喜欢李建忠老师的这个讲座,可惜暂时没更多的了,继续关注 M ... -
利用视图管理器高效编写 SQL SELECT 语句
2006-02-19 13:27 907献给初学者,老鸟别扔砖头 编写 ... -
将Web站点下的绝对路径转换为虚拟路径
2006-05-07 12:48 1163很经常使用到的一个功能,但在在网上却一直没有找到相关的解决方法 ... -
比较高效地实现从两个不同数组中提取相同部分组成新的数组(只支持Int类型) [C#]
2006-05-13 22:17 3996有时候我们需要从两个不同数组中提取出相同的部分 ... -
基于 .NET 2.0 System.Net.Mail namespace 的邮件发送组件
2006-05-17 13:11 1847一个基于 .NET 2.0 System.Net.Mail n ... -
从 CCS 1.1 升级到 CS 2.0 所遇到的问题和部分解决方法
2006-06-16 12:58 781整理了一下,记录在这 ... -
.NET Enum The Next Level
2006-08-20 17:15 1118声明:本文内容出自:http://www.codeprojec ... -
C# 中实现随机时间的获取
2006-09-07 17:31 1311原理其实非常简单,取出两个时间差的秒数,再在0到该秒数 ... -
NHibernate 实体类中重写 Equals() 和 GetHashCode()
2006-09-17 17:08 1511在正常的对象操作中,当两个对象都是通过 new ... -
初识 db4o
2006-10-25 21:41 902今天早上收到 IBM developerWork ... -
Spring.Net AOP 学习之旅: 使用 Throws Advice 处理异常
2006-10-30 21:12 4208写在前头:本文示例和部分文字来自《Sprin ... -
.NET 中的 委托与事件
2006-12-27 10:10 1893一、什么是委托 ...
相关推荐
简单的邮件发送类,利用System.Web.Mail.MailMessage
//接着利用sina的SMTP来发送邮件,需要使用Microsoft .NET Framework SDK v1.1和它以上的版本 //基本权限 objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1...
C# 发送邮件 System.Web.Mail.MailMessage myEmail = new System.Web.Mail.MailMessage(); System.Web.Mail.SmtpMail.Send(myEmail);
asp 发送邮件代码 用CDONTS发送邮件 代码演示 --> http://www.ccopus.com/code/sample/SMTPmail.asp *注,Windows xp, Windows 2003 默认没有附带CDONTS.DLL,必须手动安装,你可以从Windows 2000的system32中...
以组件技术为基础,利用System.Web.Mail命名空间构造函数,分别调用Mailmessage,Mailattachment和SMTPmail方法,实现以Web网页的形式收发电子邮件,用户只需要通过Web页面就可以实现带附件邮件的发送。 本论文分为四...
以组件技术为基础,利用System.Web.Mail命名空间构造函数,分别调用Mailmessage,Mailattachment和SMTPmail方法,实现以Web网页的形式收发电子邮件,用户只需要通过Web页面就可以实现带附件邮件的发送
PHP smtpmail发邮件
以组件技术为基础,利用System.Web.Mail命名空间构造函数,分别调用Mailmessage,Mailattachment和SMTPmail方法,实现以Web网页的形式收发电子邮件,用户只需要通过Web页面就可以实现带附件邮件的发送。
ASP.NET Web Application Development Layers Web Forms XML Web Services COM/COM+ Interoperability and Component Services ADO.NET Migration from Classic ASP to ASP.NET Globalization and ...
ASP.NET 调用2008部署的SMTP服务自动发邮件! 具体见博客: http://blog.csdn.net/longteng1116/article/details/22287431
你既可以用它发送一个纯文本邮件,也可以发送一个带有附件的邮件,理所当然地,你也可以使用不同的SMTP服务器。经过测试,证实此软件是一个支持多收信人,多附件的群发软件。虽然它没有FoxMail那么强大的功能,但是...
Smtpmail邮件安卓客户端,根据安卓系统邮件系统改编而来
使用smtp发送邮件(源码.txt) c++ windows 套接字编程
用C#.Net编写的基于SMTP协议的邮件发送客户端. 包括邮件发送,联系人管理
在这个名字空间下,有一个专门使用SMTP协议来发送邮件的类:SmtpMail,它已能满足最普通的发送邮件的需求。这个类只有一个自己的公共函数--Send()和一个公共属性—SmtpServer,您必须通过SmtpServer属性来指定发送...
用c#编写的发送邮件程序。 可以实现如下功能: 1.对发送人和接收人的邮箱格式进行检验,不对进行提示,用正则表达式进行验证 2.密码长度在5-20个字符之间 3.邮件主题必须为中文 4.邮件内容小于1000 5.附件大小小于5m...
利用服务器自带的JMail.SMTPMail组件发送邮件
.net中发送邮件方法有很多,如MailMessage,SmtpMail等下面我来给大家利用这些方法来实现在.net中邮件发送吧,希望此方法对各位同学会有所帮助
5.1 发送邮件类SmtpMail 20 5.2 AddExtra类 27 5.2.1 调用Windows API 所需的命名空间 28 5.2.3 在程序中具体的使用 28 6 软件运行时的界面 29 6.1 新建邮件帐号 29 7 系统测试 32 7.1 同一SMTP服务器发送...
Email,Jmail,Smtp邮件发送,发送多个邮件事例,简单实用