目录
北极星书库
CFPOP的ACTION属性用来指定要获取什么数据。你可以获取所有数据(GetA11),只获取标题数据(GetHeaderOnly),或者删除邮件(DELETE)。后面将给出几个例子。注意要使下面的例子能成功运行,你需要以一个合法的用户名和密码引用某个有效的POP服务器。
只返回信息标题
使用CFPOP标签时,若ACTION=“GetHeaderOnly”,则ColdFusion只将邮件的标题信息返回到NAME属性所指定的查询中。标题信息有下面几种:
· DATE
· FROM
· MESSAGENUMBER
· REPLYTO
· SUBJECT
· CC
· TO
标题信息
CFPOP所返回的邮件标题有可能被括在HTML代码中。你可以用ColdFusion函数HTMLCode Format将HTML标签转换为替代字符,例如用“>”表示“>”,用“&Lt”表示“<”。
另外,CFPOP返回的日期值可以用函数ParseDateTime进行处理,该函数将POP日期时间对象转换为GMT(格林威治时间)。
你可以在CFOUTPUT中引用这些标题,如下例所示:
<CFOUTPUT>
#ParseDateTime(queryname.date, "POP")#
#HTMLCodeFormat(queryname.from)#
#HTMLCodeFormat(queryname.messagenumber)#
</CFOUTPUT>
例子:获取邮件标题
用户可以从POP服务器获取或删除邮件信息,下面的例子文件holronly.cfm演示了如何获取邮件的标题信息:
例子文件: hdronly.cfm
<HTML>
<HEAD>
<TITLE>POP Mail Message Header Example</TITLE>
</HEAD>
<BODY>
<H2>This example retrieves message
header information:</H2>
<CFPOP SERVER="mail.company.com"
USERNAME=#username#
PASSWORD=#password#
ACTION="GetHeaderOnly"
NAME="Sample">
<CFOUTPUT QUERY="Sample">
MessageNumber: #HTMLEditFormat(Sample.MESSAGENUMBER)# <BR>
To: #HTMLEditFormat(Sample.TO)# <BR>
From: #HTMLEditFormat(Sample.FROM)# <BR>
Subject: #HTMLEditFormat(Sample.SUBJECT)# <BR>
Date: #HTMLEditFormat(Sample.DATE)# <BR>
Cc: #HTMLEditFormat(Sample.CC)# <BR>
ReplyTo: #HTMLEditFormat(Sample.REPLYTO)# <BR>
</CFOUTPUT>
</BODY>
</HTML>
返回整个邮件
使用CFPOP时指定ACTION=“GetA11”,ColdFusion除了返回与GetHeaderOnly
相同的字段外,还返回另外两个字段,BODY和HEADER。
在下面的例子文件hdrbody.cfm中,ACTION属性被设为“GetA11”,因此它将获取邮件的标题和信息体。
例子文件: hdrbody.cfm
<HTML>
<HEAD>
<TITLE>POP Mail Message Body Example</TITLE>
</HEAD>
<BODY>
<H2>This example adds retrieval of
the message body:</H2>
<CFPOP SERVER="mail.company.com"
USERNAME=#username#
PASSWORD=#password#
ACTION="GetAll"
NAME="Sample">
<CFOUTPUT QUERY="Sample">
MessageNumber: #HTMLEditFormat(Sample.MESSAGENUMBER)# <BR>
To: #HTMLEditFormat(Sample.TO)# <BR>
From: #HTMLEditFormat(Sample.FROM)# <BR>
Subject: #HTMLEditFormat(Sample.SUBJECT)# <BR>
Date: #HTMLEditFormat(Sample.DATE)# <BR>
Cc: #HTMLEditFormat(Sample.CC)# <BR>
ReplyTo: #HTMLEditFormat(Sample.REPLYTO)# <BR>
Body: #HTMLCodeFormat(Sample.BODY)# <BR>
Header: #HTMLCodeFormat(Sample.HEADER)# <BR>
</CFOUTPUT>
</BODY>
</HTML>
返回附件
若ACTION属性设置为“GetA11”,并同时指定ATTACHMENTPATH属性,则ColdFusion返回两个额外的字段:
· ATTACHMENTS——包含一列附件源的名字,以制表符为分隔符。
· ATTACHMENTFILES——包含实际写入服务器的一列临时文件名:以制表符为分隔符。
你可以用CFFILE标签删除这些临时文件。
并非所有的邮件都带有附件。如果一个邮件没有附件,则ATTACHMENTS属性和ATTACHMENTFILES属性均为一空字符串。
处理附件文件名
为避免文件重名所带来的问题,ColdFusion为所有的附件建立临时文件。如果你收取的邮件带有附件,你可以用ATTACHMENTPATH属性选择附件的保存位置。应用程序开发者的任务是管理这些文件,使对它们的访问不会混淆。
程序开发者还应注意清除CFPOP标签执行时所产生的临时文件。
下面的例子文件attch.cfm返回包括附件在内的邮件信息的所有内容:
例子文件: attach.cfm
<HTML>
<HEAD>
<TITLE>POP Mail Message Attachment Example</TITLE>
</HEAD>
<BODY>
<H2>This example retrieves message header,
body, and all attachments:</H2>
<CFPOP SERVER="mail.company.com"
USERNAME=#username#
PASSWORD=#password#
ACTION="GetAll"
ATTACHMENTPATH="c:\attachdir"
NAME="Sample">
<CFOUTPUT QUERY="Sample">
MessageNumber: #HTMLEditFormat(Sample.MESSAGENUMBER)# <BR>
To: #HTMLEditFormat(Sample.TO)# <BR>
From: #HTMLEditFormat(Sample.FROM)# <BR>
Subject: #HTMLEditFormat(Sample.SUBJECT)# <BR>
Date: #HTMLEditFormat(Sample.DATE)# <BR>
Cc: #HTMLEditFormat(Sample.CC)# <BR>
ReplyTo: #HTMLEditFormat(Sample.REPLYTO)# <BR>
Attachments: #HTMLEditFormat(Sample.ATTACHMENTS)# <BR>
Attachment Files: #HTMLEditFormat(Sample.ATTACHMENTFILES)# <BR>
Body: #HTMLCodeFormat(Sample.BODY)# <BR>
Header: #HTMLCodeFormat(Sample.HEADER)# <BR>
</CFOUTPUT>
</BODY>
</HTML>
删除邮件
缺省情况下,收取邮件时并不将邮件从POP服务器上删除,如果你想删除已收取的邮件,则必须将ACTION属性设为“Delete”。
CFPOP返回的MESSAGENUMBER变量包含了你需要送回到POP服务器的邮件序号,该序号指明要删除哪个邮件。应注意的是:
· 一旦删除了一个邮件,就无法恢复它。
· 每次对POP服务器执行完一个Delete操作后,邮件序号就会被重新分配。例如,如果从POP服务器收取了四个邮件,返回的邮件序号为1,2,3,4。如果随后在一个CFPOP标签内删除了两个邮件,则邮件3和邮件4会分别被分配给序号1和2。
例子:删除邮件
例子文件: msgdel.cfm
<HTML>
<HEAD>
<TITLE>POP Mail Message Delete Example</TITLE>
</HEAD>
<BODY>
<H2>This example deletes messages:</H2>
<CFPOP SERVER="mail.company.com"
USERNAME=#username#
PASSWORD=#password#
ACTION="Delete"
MESSAGENUMBER="1,2,3">
</BODY>
</HTML>
前页
目录
北极星书库