Adobe ColdFusion 8

cfexchangecontact

描述

创建、删除、修改和取得 Microsoft Exchange关联记录,以及关联记录的附件。

 

语法

create
<cfexchangecontact
    required
    action = "create"
    contact = "#contact information structure#"
    optional
    connection = "connection ID"
    result = "variable for contact UID">

delete
<cfexchangecontact
    required
    action = "delete"
    uid = "contact UID,contact UID, ..."
    optional
    connection = "connection ID">

deleteAttachments
<cfexchangecontact
    required
    action = "deleteAttachments"
    uid = "contact UID"
    optional
    connection = "connection ID">

get
<cfexchangecontact
    required
    action = "get"
    name = "query identifier"
    optional
    connection = "connection ID">

getAttachments
<cfexchangecontact
    required
    action = "getAttachments"
    name = "query identifier"
    uid = "contact UID"
    optional
    attachmentPath = "directory path"
    connection = "connection ID"
    generateUniqueFilenames = "no|yes">

modify
<cfexchangecontact
    required
    action = "modify"
    contact = "#contact information structure#"
    uid = "contact UID"
    optional
    connection = "connection ID>"

注: 如果你忽略了这个关联属性,你就必须通过在cfexchangecontact标签里指定cfexchangeconnection标签来创建一个临时的连接。这种情况下,ColdFusion会在标签运行结束时关闭这个连接。更多细节,请看 cfexchangeconnection 标签的打开属性。

注: 你可以在attributeCollection 中指定这个标签的属性,作为一个结构的value,在attributeCollection 中指定结构的名称,并使用这个标签的属性名称作为这个结构的Keys.

 

属性

属性

动作

必选/可选

默认

描述

action

N/A

必选

 

这个动作是取得。必须是以下的值之一:

  • 创建
  • 删除
  • deleteAttachments
  • get
  • getAttachments
  • 修改

attachmentPath

getAttachments

可选

 

放置附件的目录的绝对文件路径。如果目录不存在,ColdFusion就会创建一个目录。

注意: 如果你忽略了这个属性,ColdFusion不会保存任何的附件。

connection

所有

可选

 

Exchange 服务器的连接的名字, 就像在 cfexchangeconnection标签中指定的一样。

如果你忽略了这个属性,你就必须通过在cfexchangecontact标签里指定cfexchangeconnection标签的连接打开工作属性来创建一个临时的连接。

contact

创建

修改

必选

 

结构的参考,该参考包含了要被设置或改变值的关联性能。你必须在两个#之间指定这个属性。

更多事件结构的内容,请看使用方法。

generateUniqueFilenames

getAttachments

可选

no

一个Boolean 值,该值指定了是否要创建一个独特的文件名,还是让多个附件使用同一个文件名。如果有两个或者跟多的附件都有同样的文件名,并且这个值选择了yes, ColdFusion就会给每一个有冲突的文件名都附录一个数字(在扩展之前)。 这样的话,如果三个属性都命名为myfile.txt, ColdFusion 就会把附件保存为s myfile.txt, myfile1.txt, 和 myfile2.txt。

name

get

getAttachments

必选

 

ColdFusion的query变量的名字,这个query变量包含了返回的关联记录或者是被检索的附件的信息。更多关于返回数据的信息,请看使用方法。

result

创建

可选

 

包含了被创建的关联的UID的变量名。在其他动作里的uid属性里使用这个值可以指定动作对应的关联。

uid

getAttachments

删除

修改

必选

 

单独指定运行动作的关联的Exchange UID 值,该值要注意大小写。对于删除动作来说,这个属性可以是一个用逗号隔开的UID值的清单。 deleteAttachments, getAttachments, 和修改动作都只允许一个单独的 UID 值。

当你指定了创建或修改动作的时候,这个关联属性必须指定一个结构来包含定义了事件的信息。该结构可以有以下的元素。你必须只包含那些你正在设置或者修改的元素。

Assistant

Attachment

BusinessAddress

BusinessFax

BusinessPhoneNumber

Categories

Company

Department

Description

DisplayAs

Email1

Email2

Email3

FirstName

HomeAddress

HomePhoneNumber

JobTitle

LastName

MailingAddressType

Manager

MiddleName

MobilePhoneNumber

NickName

Office

OtherAddress

OtherPhoneNumber

Pager

Profession

SpouseName

WebPage

 

 

所有的fields 除了BusinessAddress, HomeAddress, 和 OtherAddress fields 都包含文本,三个 address 域必须含有带有下列文本域的结构:

  • Street
  • City
  • State
  • Zip
  • Country

Attachments field必须包含该关联里的任何附件的路径名。为了指定多个文件,在Windows系统里每个文件路径名都要用分号隔开,在UNIX 和 Linux系统里用冒号隔开。你必须用绝对路径。

如果你为一个修改动作指定了一个或者更多的附件,他们就会被添加到已存在的附件,先前存在的附件不会被删除。

Categories 域可以有一个用逗号隔开的关联类别的清单。( can have a comma-delimited list of the contact's categories.)

如果你没有指定一个 DisplayAs 域, Exchange就设置显示名字给FirstName, LastName.

使用方法

cfexchangecontact 标签控制了 Exchange 服务器上的关联记录t。使用cfexchangecontact 标签可以运行以下动作:

  • 创建一个关联。
  • 删除一个或者更多的关联。
  • 取得一个或者更多符合一套过滤条件的规格的关联,比如说姓,职称、或者家庭电话号码等等。
  • 取得一个指定的关联记录的附加参数
  • 修改一个现存的关联。

要使用这个标签,你必须有一个和Exchange服务器的关联。如果你正在使用和Exchange服务器互动的多个标签,比如说如果你正在创建一些关联记录,你可以使用cfexchangeconnection标签来创建一个永久连接。然后你可以在每一个cfexchangecontact里指定该连接的标识符,或者是任何其他的ColdFusion Exchange 标签里,。如果你也要存取任务,关联或者邮件的话。这样做的话,为每一个标签消除了间接的创建和 关闭连接。

另外, 你可以创建一个临时的连接,这个临时连接可以一直持续到ColdFusion运行这个cfexchangecontact 标签结束。这样的话,你就直接在 cfexchangecontact标签里指定连接属性。更多连接属性的细节,请看 cfexchangeconnection 标签的打开动作。

删除

当你指定了删除的动作之后,你必须指定一个uid属性,该属性带有一个用逗号隔开的用来定义删除关联的ExchangeUID的清单。你可以使用取得动作,用一个有适当过滤条件的表达式,来定义指定的 UID值。

如果所有你指定的 UIDs 都是无效的,cfexchangecontact标签就会生成一个错误。如果 至少有一个UID 是有效的,那么这个标签就会忽略所有的无效UIDs并删除有效UID指定的items。

取得

当你指定取得动作的时候,被命名属性指定的 query 对象包含了每一个检索的关联的记录。该 query 对象带有一些栏目包含着名字和数据,这些名字和数据和列在关联属性结构里的一样,带有以下的一些变化:

  • 该 query 对象有一个Boolean HasAttachment 栏目,但是没有Attachments 栏目。如果HasAttachment 域是 yes, 可以使用getAttachments 动作来检索附加参数。
  • 该 query 对象有一个附加的UID 栏目今,栏目里有独特的标识符,指向Exchange服务器上的关联记录。在getAttachments、修改、删除的动作里的uid属性使用这个值,可以定义所请求的记录。
  • 该 query 对象有一个附加的 HtmlDescription 栏目。 该 Description 栏目有一个纯文字版的说明,并且 HtmlDescription 栏目的文本包括了描述的 HTML 格式。

你可以使用子标签 cfexchangefilter 来指定信息去取得。更多细节,请看 cfexchangefilter.

getAttachments动作

当你使用 getAttachments 动作的时候,你必须指定一个单独的UID 和一个命名属性。该acfexchangecontact标签填充了一个带有指定的名字的query 对象。每一个记录都有以下关于用UID指定的关联附加参数的信息:

栏目名字

描述

attachmentFileName

附加参数的文件名

attachmentFilePath

服务器上附件的绝对路径。如果你忽略了 这个attachmentPath 属性,这个栏目就包含空的字符串。

CID

附加参数的 content-ID。特别是用在HTML img 标签里用来在一个信息里插入图像。

mimeType

附加参数的MIME 类型,比如text/html。

isMessage

一个Boolean值,指定了附加参数是否是一个信息。

size

附加参数的字节大小。

如果你忽略了 attachmentPath 属性, ColdFusion 不会取得任何的附件;如果它取得了关于附件的信息,就会让你定义事件的附件,而不会导致取得附件的为空。

修改

如果你指定了修改的动作,uid 属性会指定一个单独的 Exchange UID.。该关联结构必须指定你要修改的域 。任何没有指定修改的域都不会改动。

如果一个关联有附加参数,当你修改关联的时候指定了附加参数 ,新的附加参数就会添加到之前的附加参数里,且不会替代原来的附加参数。你必须使用 deleteAttachments 动作来删除任何的附加参数。

范例

下面的范例让一个用户在一个表单输入信息并用该信息在Exchange服务器上创建一个关联:

<!--- Create a structure to hold the contact information. --->
<cfset sContact="#StructNew()#">

<!--- A self-submitting form for the contact information --->
<cfform format="flash" width="550" height="460">
    <cfformitem type="html"><b>Name</b></cfformitem>
    <cfformgroup type="horizontal" label="">
        <cfinput type="text" label="First" name="firstName" width="200">
        <cfinput type="text" label="Last" name="lastName" width="200">
    </cfformgroup>
    <cfformgroup type="VBox">
        <cfformitem type="html"><b>Address</b></cfformitem>
        <cfinput type="text" label="Company" name="Company" width="435">
        <cfinput type="text" label="Street" name="street" width="435">
        <cfinput type="text" label="City" name="city" width="200">
        <cfselect name="state" label="State" width="100">
            <option value="CA">CA</option>
            <option value="MA">MA</option>
            <option value="WA">WA</option>
        </cfselect> 
        <cfinput type="text" label="Country" name="Country" width="200" Value="U.S.A.">
        <cfformitem type="html"><b>Phone</b></cfformitem>
        <cfinput type="text" validate="telephone" label="Business" name="businessPhone"
            width="200">
        <cfinput type="text" validate="telephone" label="Mobile" name="cellPhone"
            width="200">
        <cfinput type="text" validate="telephone" label="Fax" name="fax" width="200">
        <cfformitem type="html"><b>Email</b></cfformitem>
        <cfinput type="text" validate="email" name="email" width="200">
    </cfformgroup>

    <cfinput type="Submit" name="submit" value="Submit" >
</cfform> 


<!--- If a form was submitted, populate the contact structure from it. --->
<cfif isDefined("Form.Submit")>
    <cfscript>
        sContact.FirstName=Form.firstName;
        sContact.Company=Form.company;
        sContact.LastName=Form.lastName;
        sContact.BusinessAddress.Street=Form.street;
        sContact.BusinessAddress.City=Form.city;
        sContact.BusinessAddress.State=Form.state;
        sContact.BusinessAddress.Country=Form.country;
        sContact.BusinessPhoneNumber=Form.businessPhone;
        sContact.MobilePhoneNumber=Form.cellPhone;
        sContact.BusinessFax=Form.fax;
        sContact.Email1=Form.email;
    </cfscript>
    
    <!--- Create the contact in Exchange --->
    <cfexchangecontact action="create" 
        username ="#user1#"
        password="#password1#"
        server="#exchangeServerIP#"
        contact="#sContact#"
        result="theUID">
        
    <!--- Display a confirmation that the contact was added. --->
    <cfif isDefined("theUID")>
        <cfoutput>Contact Added. UID is#theUID#</cfoutput>
    </cfif>
</cfif>