万卷书>>电脑书籍>>网页制作>>网页制作软件使用>>ColdFusion 初级教程

WANJUANSHU.COM

处理POP邮件

CFPOP的ACTION属性用来指定要获取什么数据。你可以获取所有数据(GetA11),只获取标题数据(GetHeaderOnly),或者删除邮件(DELETE)。后面将给出几个例子。注意要使下面的例子能成功运行,你需要以一个合法的用户名和密码引用某个有效的POP服务器。


 

只返回信息标题


 

使用CFPOP标签时,若ACTION=“GetHeaderOnly”,则ColdFusion只将邮件的标题信息返回到NAME属性所指定的查询中。标题信息有下面几种:


 

· DATE


 

· FROM


 

· MESSAGENUMBER


 

· REPLYTO


 

· SUBJECT


 

· CC


 

· TO


 

标题信息


 

CFPOP所返回的邮件标题有可能被括在HTML代码中。你可以用ColdFusion函数HTMLCode Format将HTML标签转换为替代字符,例如用“&gt”表示“>”,用“&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>

 
上一页 WanJuanShu.COM  
WANJUANSHU.COM 万卷书