-->ColdFusion 初级教程-->处理POP邮件

ColdFusion

后页 前页
目录
北极星书库
处理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>


后页
前页
目录
北极星书库