使用 ASP 在 Exchange 中验证电子邮件地址





3.00/5 (5投票s)
2004年10月29日
3分钟阅读

70988

640
本文指出了如何使用 ASP 在 Exchange 中验证电子邮件地址。
引言
通过 ADSI(Active Directory Service Interface),微软提供了一个 COM 组件,用于访问各种目录服务。ADSI 是 Windows 2000 的一个组件。
您可以将 ADSI 视为各种目录服务的 ODBC 接口。在网络中,目录服务管理用户和功能,例如计算机、打印机、用户和服务。
目录服务的结构是分层的,可以看作是一棵目录树:有一个根,您可以从那里开始访问其他条目。根可以包含容器(结点)和叶子。容器本身可以包含其他条目,而叶子标记目录树中分支的末端。目录中的每个条目都描述一个对象并具有特定的属性。这可以用 Windows 文件系统来说明:硬盘C: 是根,目录/文件夹是容器,文件是叶子。
ADSI 支持的目录系统的例子有:WinNT(访问 Windows NT)、GC(Windows 2000 全局目录)、IIS(Internet 信息服务器元数据库)、NWCOMPAT(Novell NetWare 3.x)、NDS(Novell NetWare 4.x)和 LDAP 目录。
在此上下文中,将特别考虑目录服务 LDAP。LDAP(轻量级目录访问协议)于 90 年代初在密歇根大学开发,可以更轻松地访问 X.500 协议的目录服务。LDAP 基于 TCP/IP 并使用端口号 389。越来越多的公司将 LDAP 集成到他们的产品中,例如微软的 Exchange、Windows 2000 和 Site Server。
在 Exchange LDAP 目录中搜索
使用 GetObject
方法,您可以访问 LDAP 目录服务中的已知对象或容器,从而显示地址簿。
但是,如果要搜索用户该怎么办?
在这种情况下,ADSI 通过 OLE-DB 提供对目录条目的访问。这使得进行查询成为可能。注意:通过 OLE-DB 的访问仅为读取访问。条目无法修改。
LDAP 查询需要以下信息
- 目录服务层次结构的起始对象。
- 搜索标准。
- 应返回的找到对象的属性。
- 基于起始对象的搜索深度。
LDAP 查询的语法是
<LDAP://Servername/Startobject> ; search criteria ;
returned attributes ; search depth
搜索标准的一个特征是用于定义搜索标准的运算符。
运算符
&
- 逻辑 “and”(与)|
- 逻辑 “or”(或)!
- 逻辑 “not”(非)=
- 等于>
- 大于<
- 小于
位于条件之前。
例如: (|(givenname=first name)(sn=surname*))。
星号符号 (*) 可以用作多个符号的占位符。
一般来说,Exchange 服务器只支持在右侧使用星号符号。必须首先在 Exchange 服务器 XXXXX 下激活在左侧使用星号符号。
有三种可能的搜索深度:BASE(仅基本级别)、ONELEVEL(基本级别和第一子级别)和 SUBTREE(基本级别和所有后续子级别)。
示例:验证 Exchange 中的电子邮件地址
首先,与数据库建立 ADO 连接
set oConn = CreateObject("ADODB.Connection")
set oCommand = CreateObject("ADODB.Command")
oConn.Provider = "ADsDSOObject"
oConn.Open "Ads Provider"
然后进行 LDAP 查询并通过 ADO 发送到数据库
strServerName = "Exchange01"
strEmail = Request.Form("email")
strQuery = "<LDAP://" & strServername & _
">;(&(objectClass=*)(mail=" & strEmail & _
"));ADsPath,sn,givenname,mail,uid;subtree"
oCommand.CommandText = strQuery
set oRS = oCommand.Execute
如果查询成功,结果将在 RecordSet
对象中返回。 然后可以使用已知的 ADO 方法显示结果
<%
if not oRS.eof then
response.write "This email adress is valid."
else
Response.Write "This email adress is not valid."
end if
%>
Exchange LDAP 中用户属性的调查
使用此方法,您还可以验证分配给每个用户的其他用户属性
名称
邮件
cn
sn
givenname
member
department
title
uid
company
telephonenumber
facsimiletelephonenumber
postaladdress
homepostaladdress
physicalDeliveryOfficeName
注意
您必须确保 InternetUser 具有访问 Exchange 的权限。
摘要
如果您将这些组件放在一起并添加搜索掩码,那么您可以为 Exchange 地址簿获得一个简单的搜索可能性,例如,对于 Intranet。
下载演示项目,您就会看到它是如何工作的!