Chinapub coM M2 8 ASP BIH FNT B MCD0 657 下载 objSendMail("Keywords") reetings objSendMail.sendJohn@Anywhere.com,"TeanieGlisas Greetings, How have you been? Set objSendMail Nothing 对加到 Value集合上的项目个数是没有限制的,添加的每一个项目都将创建消息的另一个 Set ob] SendMail Createobject(" CDONTS NewMail) objSendMail("Reply-To")="Jack@anywhere.com" bjSendMail("Keywords")="Greetings objSendMailSendJohn@Anywhere.com,"Jeanie@lisas Greetings,"How have you bee Set objsendMail- Nothing 8. Version属性 New Mail对象的 Version属性返回的是正在执行代码的 CDONTS库的版本,下面程序可得 到一个包含版本信息的字符串 strcurversion objNewMail version 当前的 Version属性将返回字符串“1.2”。 9.Send方法 本章已使用过 NewMail对象的Send方法。使用Send方法和列出参数,尽管不能使程序在 可读性和易调试方面达到完美。但是,它仍然在一些应用程序中很有用,不应该完全忽视 这儿有一个Send方法的参数列表 ob]NewMai1.send(【From][,To][, Subject]【,Body][, Importance】) Send方法的参数及说明如表22-2所示 表22-2 d方法的参数及说明 FI 可选,字符串,消息发送者的地址 可选,字符串,消息收件人的清单 可选,字符串,消息的主题 可选,字符串,消息的主体 可选,长整型值,消息的优先级,缺省为1( Conormal 如表22-2所示,这些参数每个都是可选的。若它们为空的话, NewMail对象就会使用缺省 值。所有字符串参数缺省为空的字符串, Importance缺省为l( Conormal) 总之,为参数指定一些值在功能上与单独设置属性没有什么不同。然而有一个例外,若 用Send方法指定了收件人清单,而 NewMsail对象的To属性也指定了收件人清单,则消息将发 往两个清单上的每一个收件人。 10. NewMail对象小结 在讨论 CDONTS提供的其他对象之前,先总结一下 NewMail对象的要点 CDONTS库没有提供用户界面,也别指望和任何一个用户交互。因此,没有一个 NewMail对象的属性(除了 Version)能够运行时被读。所有的属性(除了 Version)都是只写 型的。与此有关的一个例子是,一旦一个报头或附件加到消息上,就不能删除它。要在 收件人清单上删掉一个收件人,需要先删除收件人清单上的所有收件人,然后再添加上
对加到Va l u e集合上的项目个数是没有限制的,添加的每一个项目都将创建消息的另一个 报头: 8. Ve r s i o n属性 N e w M a i l对象的Ve r s i o n属性返回的是正在执行代码的 C D O N T S库的版本,下面程序可得 到一个包含版本信息的字符串: 当前的Ve r s i o n属性将返回字符串“1 . 2”。 9. Send方法 本章已使用过N e w M a i l对象的S e n d方法。使用S e n d方法和列出参数,尽管不能使程序在 可读性和易调试方面达到完美。但是,它仍然在一些应用程序中很有用,不应该完全忽视。 这儿有一个S e n d方法的参数列表。 S e n d方法的参数及说明如表2 2 - 2所示。 表22-2 Send方法的参数及说明 参 数 描 述 F r o m 可选,字符串,消息发送者的地址 To 可选,字符串,消息收件人的清单 S u b j e c t 可选,字符串,消息的主题 B o d y 可选,字符串,消息的主体 I m p o r t a n c e 可选,长整型值,消息的优先级,缺省为 1 ( C d o N o r m a l ) 如表2 2 - 2所示,这些参数每个都是可选的。若它们为空的话, N e w M a i l对象就会使用缺省 值。所有字符串参数缺省为空的字符串, I m p o r t a n c e缺省为1 ( C d o N o r m a l )。 总之,为参数指定一些值在功能上与单独设置属性没有什么不同。然而有一个例外,若 用S e n d方法指定了收件人清单,而 N e w M s a i l对象的To属性也指定了收件人清单,则消息将发 往两个清单上的每一个收件人。 10. NewMail对象小结 在讨论C D O N T S提供的其他对象之前,先总结一下 N e w M a i l对象的要点: • C D O N T S库没有提供用户界面,也别指望和任何一个用户交互。因此,没有一个 N e w M a i l对象的属性(除了Ve r s i o n )能够运行时被读。所有的属性 (除了Ve r s i o n )都是只写 型的。与此有关的一个例子是,一旦一个报头或附件加到消息上,就不能删除它。要在 收件人清单上删掉一个收件人,需要先删除收件人清单上的所有收件人,然后再添加上 第2 2章 A S P和用于N T服务器的C D O计计657 下载
658A5p3高装编程 Chinapub.com 所需的收件人。 NewMail对象是不能重复使用的。一旦在一个实例中调用了Send方法,就不能再使用此 实例,假如想在没有实例化一个新的 New Mail对象实例时调用Send方法,有可能在ASl 代码中出现一个运行期错误,发送的每一个消息都需要创建一个新的 NewMail对象实 NewMail对象与 CDONTS库提供的其他组件是分离的。大部分对象都在 Session对象层下 面,那些对象提供了非常高级的功能,允许创建更加复杂的应用程序,在需要做一些不 仅仅是发送e-mai的事情时,其他的对象更胜任这些任务 223.3其他的 CDONTS对象 现在将精力集中在 Session对象及其以下的对象 你也许会想到像发送消息这样的简单操作使用 Session对象比使用 NewMan对象所用的代 码更多,这样认为是对的。但更多的代码换来了更的控制能力和更多的功能。 1. Session对象 Session对象包含缺省消息信息、访问收件箱和发件箱以及绑定到一个用户的邮箱所需要 的所有信息。在 CDONTS库中,只有两个顶层对象: New Mail和 Session,用户的所有会话设 置和选项都存储在这个用户的会话的 Session对象中, Session对象有四个方法 Logon smtP · Get Folder。 · Setlocalelds (1) LogonSMTP方法 LogonSMTP方法初始化 Session对象,并将其绑定到指定的邮箱上,其语法结构如下: obsession. LogonsMTP(DisplayName, Address LogonSMTP方法的参数及说明如表22-3所示。 表22-3 Logon SMTP方法的参数及说明 必有的,登录用户的显示名 Address 必有的,登录用户的完全e-ma地址 在使用一个 Session对象之前,必须实例化它,并且必须成功执行 LogonSMTP方法。如果 在调用 LogonSMTP方法之前,调用 Session对象的任何方法,或引用 Session对象的任何属性, 将得到一个 CdOE NOT INItialized错误。 注意,有一个例外:可以在成功调用 LogonSMTP之前调用 Setlocalelds方法 于是,为了访问一个用户的信息,可这样做: Dim objCurSession objcursession- Createobject(CDONTS Session) objcursessioN.LogonsmtpjackRoberts,'jackreanywhere.com 在上面程序中,首先创建一个新的 Session对象。然后,在最后一行,使用用户的显示名
所需的收件人。 • N e w M a i l对象是不能重复使用的。一旦在一个实例中调用了 S e n d方法,就不能再使用此 实例,假如想在没有实例化一个新的 N e w M a i l对象实例时调用S e n d方法,有可能在A S P 代码中出现一个运行期错误,发送的每一个消息都需要创建一个新的 N e w M a i l对象实 例。 • N e w M a i l对象与C D O N T S库提供的其他组件是分离的。大部分对象都在 S e s s i o n对象层下 面,那些对象提供了非常高级的功能,允许创建更加复杂的应用程序,在需要做一些不 仅仅是发送e - m a i l的事情时,其他的对象更胜任这些任务。 22.3.3 其他的C D O N T S对象 现在将精力集中在S e s s i o n对象及其以下的对象。 你也许会想到像发送消息这样的简单操作使用 S e s s i o n对象比使用N e w M a i l对象所用的代 码更多,这样认为是对的。但更多的代码换来了更的控制能力和更多的功能。 1. Session对象 S e s s i o n对象包含缺省消息信息、访问收件箱和发件箱以及绑定到一个用户的邮箱所需要 的所有信息。在 C D O N T S库中,只有两个顶层对象: N e w M a i l和S e s s i o n,用户的所有会话设 置和选项都存储在这个用户的会话的 S e s s i o n对象中,S e s s i o n对象有四个方法。 • Logon SMTP。 • Logoff。 • GetDefaultFolder。 • SetLocaleIDs。 (1) LogonSMTP方法 L o g o n S M T P方法初始化S e s s i o n对象,并将其绑定到指定的邮箱上,其语法结构如下: objSession.LogonSMTP(DisplayName, Address) L o g o n S M T P方法的参数及说明如表2 2 - 3所示。 表22-3 LogonSMTP方法的参数及说明 参 数 描 述 D i s p l a y N a m e 必有的,登录用户的显示名 A d d r e s s 必有的,登录用户的完全 e - m a i l地址 在使用一个S e s s i o n对象之前,必须实例化它,并且必须成功执行 L o g o n S M T P方法。如果 在调用L o g o n S M T P方法之前,调用 S e s s i o n对象的任何方法,或引用 S e s s i o n对象的任何属性, 将得到一个C d o E _ N O T _ I N I T I A L I Z E D错误。 注意,有一个例外:可以在成功调用 L o g o n S M T P之前调用S e t L o c a l e I D s方法。 于是,为了访问一个用户的信息,可这样做: 在上面程序中,首先创建一个新的 S e s s i o n对象。然后,在最后一行,使用用户的显示名 658计计ASP 3 高级编程 下载
CQ02m第0659 下载 和消息地址初始化会话。另外会话也被绑定到指定的SMTP邮箱(JackR@anywhere.com) 旦初始化,就可以访问这个用户的消息 要连接到另一个邮箱,可以创建另一个 Session对象,或者调用 Logoff法后用新的设置 调用 LogonSMTP方法 注意到 LogonSMTP方法没有执行任何身份验证是很重要的。这个方法仅设置了 Session对象的属性,它们不一定是合法的。甚至指定了一个无效的或不正确的e- ma地址,也不会返回任何错误。 Logon SMTP方法仅会初始化这些值并试图绑定到 指定的邮箱,很明显,有时可能不能正确地投递消息 (2) Get Default Folder方法 Get Folder方法为消息存储返回一个缺省的收件箱或发件箱的文件夹,此方法的语 lder obsession GetDefaultFolder(f 方法仅有一个参数 folder Type,它可以是下列两个值中的一个: CdoDefaultFolderInbox(1) 根据 i folder Type的值,方法将为当前的消息存储返回缺省的收件箱或发件箱的文件夹,使 用 CDONTS,在 GetDefaultFolder方法中没有别的文件夹可利用 如下的程序创建了一个新的会话,并得到收件箱文件夹 Dim obj Session Dim ob]Inbox Set obsession Createobject ("CDONTS Session) jCurSelection.LogonSMTP("JackRoberts",.JackR@anywhere.com') Set objInbox obsEssion GetDefaultFolder(cdoDefaultFolderInbox Set col Messages objInbox Messages 这个方法在IS平台和IS/ Exchange Server平台都可以使用。而IS/ Exchange Server代替 IIS/SMTP作为后端平台时更有用。当 Exchange server是后端平台时,这个方法允许开发者编 程访问用户的“ Calendar”、“ Contacts”和别的 Exchange文件夹。我们将在本章稍后进一步研 究文件夹对象。 (3) Setlocaleld方法 Setlocaleld方法允许程序员指定标识符定义会话的“地域”( Locale),即:基于语言、文 化和习俗的环境特征,包括日期和时间的格式、货币符号的显示、排序次序和所使用的字符 集。该方法的语法为: obsEssion. SetLocaleIDs( CodePageID) 方法的唯一参数是代码页标识符 CodepageID,它是一个长整型值。 关于代码页的更多信息和细节可在 Windows2000文档中找到。 有两个关于 Setloealeld方法的关键之处要注意。第一,必须在执行 LogonSMTP方法前调 用 Setlocaleld方法。第二,必须要检查指定的 Codepage以确保它是合法值,否则,将会得 到一个 CdOE INⅤ ALID PARAMETER错误
和消息地址初始化会话。另外会话也被绑定到指定的 S M T P邮箱( J a c k R @ a n y w h e r e . c o m )。一 旦初始化,就可以访问这个用户的消息。 要连接到另一个邮箱,可以创建另一个 S e s s i o n对象,或者调用 L o g o ff方法后用新的设置 调用L o g o n S M T P方法。 注意到L o g o n S M T P方法没有执行任何身份验证是很重要的。这个方法仅设置了 S e s s i o n对象的属性,它们不一定是合法的。甚至指定了一个无效的或不正确的 e - m a i l地址,也不会返回任何错误。 L o g o n S M T P方法仅会初始化这些值并试图绑定到 指定的邮箱,很明显,有时可能不能正确地投递消息。 (2) GetDefaultFolder方法 G e t D e f a u l t F o l d e r方法为消息存储返回一个缺省的收件箱或发件箱的文件夹,此方法的语 法为: 方法仅有一个参数f o l d e r Ty p e,它可以是下列两个值中的一个: 根据f o l d e r Ty p e的值,方法将为当前的消息存储返回缺省的收件箱或发件箱的文件夹,使 用C D O N T S,在G e t D e f a u l t F o l d e r方法中没有别的文件夹可利用。 如下的程序创建了一个新的会话,并得到收件箱文件夹: 这个方法在I I S平台和IIS/Exchange Server平台都可以使用。而 IIS/Exchange Server代替 I I S / S M T P作为后端平台时更有用。当 Exchange Server是后端平台时,这个方法允许开发者编 程访问用户的“C a l e n d a r”、“C o n t a c t s”和别的E x c h a n g e文件夹。我们将在本章稍后进一步研 究文件夹对象。 (3) SetLocaleID方法 S e t L o c a l e I D方法允许程序员指定标识符定义会话的“地域” ( L o c a l e ),即:基于语言、文 化和习俗的环境特征,包括日期和时间的格式、货币符号的显示、排序次序和所使用的字符 集。该方法的语法为: 方法的唯一参数是代码页标识符 C o d e P a g e I D,它是一个长整型值。 关于代码页的更多信息和细节可在 Windows 2000文档中找到。 有两个关于S e t L o e a l e I D方法的关键之处要注意。第一,必须在执行 L o g o n S M T P方法前调 用S e t L o c a l e I D方法。第二,必须要检查指定的 C o d e P a g e I D以确保它是合法值,否则,将会得 到一个C d o E _ I N VA L I D _ PA R A M E T E R错误。 第2 2章 A S P和用于N T服务器的C D O计计659 下载