创建、删除、修改和取得 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 |
必选
|
|
这个动作是取得。必须是以下的值之一:
|
|
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 域必须含有带有下列文本域的结构:
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 对象带有一些栏目包含着名字和数据,这些名字和数据和列在关联属性结构里的一样,带有以下的一些变化:
你可以使用子标签 cfexchangefilter 来指定信息去取得。更多细节,请看 cfexchangefilter.
当你使用 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>