System.Web.Mail - 1.0 介绍
原文出自:http://www.systemwebmail.com/default.aspx
翻译:lzumcj
1 介绍
1.1 什么是 System.Web.Mail?
System.Web.Mail (SWM) 是在 .Net Framework 应用程序中用来发送 email 的 .NET namespace 。 SWM 包含三个 class :
MailMessage – 用来创建和操纵(manipulating) mail message 的内容(contents)。
MailAttachments – 用来创建将被添加到 mail message 的 邮件附件(mail attachment)。
SmtpMail – 用来发送 email 给 中继邮件服务器(relay mail server)。
更多关于 System.Web.Mail Namespace 的信息可以在 MSDN 这里找到: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebmail.asp
1.2 什么是 .NET Framework ?
这个问题的答案已经远远超出这个 faq 的范围。基本上 .NET Framework 是一个用来创建应用程序的引擎(engine)。程序员依靠 .NET Framework 编码以创建应用程序。System.Web.Mail 命名空间(Namespace)是 .NET framework 的一部分。
更多关于 .NET Framework 的信息可以在 MSDN 这里找到: http://msdn.microsoft.com/netframework/
1.3 在 .NET 中发送 email 我需要做什么?
首先,也是最重要的,你需要已安装 .NET Framework。然后你需要一个 System.Web.dll (自动包含在 ASP.NET 应用程序中) 的引用(reference)。然后你需要用 System.Web.Mail 命名空间(namespace)来创建和发送 email messages。
因为 SWM 仅仅是封装(wrapper)于两个 COM 类库(libraries)中: CDONTS.NewMail (建立于 cdonts.dll) 和 CDO.Message (建立于 cdosys.dll),所以你也需要在你的服务器上安装它们。如果你用的是 NT4 或者 Win9x, 那么 cdonts.dll 可以通过 NT4 可选包 或者 PWS 安装。 cdosys.dll 在Windows 2003 和 Windows XP 下是缺省安装。 它也能通过安装 Microsoft Office 被安装。
一旦你可以顺利地使用 SWM, 你将需要通过中继服务器(relay server)发送 email 。中继服务器(relay server)是一个邮件服务器(mail server),或是一个 SMTP server/service, 它可以处理发送 email。 SWM 仅仅是发送 mail 到中继服务器(relay server), 而中继服务器(relay server)负责将它传送(delivering)最终的目的地(destination)。
1.4 什么是中继服务器(relay server)?
中继(relay)是允许你发送 email 的服务(service)。 它通常是 full fledged 邮件服务器(mail server), 或者可能是一个专门的(specialized) SMTP 服务(Service)。 一些邮件服务器的例子包括 Microsoft Exchange, IMail by IPSwitch, 或者 Mail Enable by Mail Enable。一个 SMTP service 的例子是 随着 IIS 一起安装的 SMTP Service 。SWM 发送 email 到中继服务器(relay server), 而中继服务器(relay server)负责发送 email 到最终的目的地(destination)。当发送 email 到中继服务器(relay server)的是否, 你必须拥有使用该服务器的许可协议(protocol permissions)。 因为垃圾邮件(SPAM)的问题, 中继服务器(relay servers)通常都向下锁定(locked down), 或者通过 IPAddress ,或者通过一些用户名/密码认证的方式。 中继错误(Relaying errors)是程序化(programmatically)发送 emails 时最普通的问题。 如果你曾经看到过一个类似 "550 Permission Denied" 的异常(exception), 这通常就是中继错误(relay error), 你需要通知你的邮件服务器管理员并申请正确的许可。
1.5 System.Web.Mail 真的是封装于(wrapper around) COM CDONTS 和 CDOSYS 中吗?
是的。System.Web.Mail 不是完全的 .NET 土生土长的(native)SMTP 协议(protocol)的实现(implementation)。 作为替代的, 它利用现有的(existing) CDONTS 和 CDOSSYS 动态连接库(dlls),该库在多年前已由 Microsoft 开发。这可以通过用 Anakrino 和映射到(reflecting into) SWM namespace 和 SmtpMail class作最好的演示。在 SmtpMail class 中有两个叫做 CdoNtsHelper 和 CdoSysHelper的私有的(private)类。 在这个封装(covers)下, CdoNtsHelper 创建 CDONTS.Newmail 对象(object), 而 CdoSysHelper 创建 CDO.Message 类(class)。 这可以在两个 screen shots CdoNtsHelper.gif 和 CdoSysHelper.gif中清楚地看到。
两外一个有趣的事实是,SWM 如何决定使用 CDONTS.Newmail 或者 CDO.Message 对象(object)。当 SmtpMail 类(class) 发送 MailMesage 的时候, SmtMail 类(class)检查操作系统的版本。如果版本 <= 4, 就用 CDONTS.Newmail 对象(object)。 对于所有版本 > 4 的操作系统, 就用 CDO.Message 对象(object)。此外, 利用 Anakrino, SmtpMailSend.gif 屏幕抓图(screen shot)证实(verifies)了这种 行为(behavior)。 因为这样的情况, 当移动代码到不同的操作系统的时候, 处理 SWM 的纷争会变得有趣。
1.6 什么是 IIS SMTP 服务(Service)?
1.7 System.Web.Mail 可以读 email 吗?
不可以。 System.Web.Mail 只能发送 email。为了读 email ,你要么需要一个 Mime 分析(parsing)组件(component),比如 aspNetMime ,要么需要一个 POP3 组件(component),比如 aspNetPOP3。
申明
非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!
博文欢迎转载,但请给出原文连接。