在coldfusion中使用CFIMAP获取最新邮件

时间:2015-04-06 10:19:51

标签: java coldfusion imap coldfusion-9 coldfusion-10

我正在尝试使用cfimap这样的最新邮件:

<cfset local.objIMAP = structNew()>
<cfset local.objIMAP.server = "imap.gmail.com">
<cfset local.objIMAP.username = "username">
<cfset local.objIMAP.password = "password">

<!--- Open the connection --->
<cfimap 
    action="open" 
    secure="yes" 
    connection="myConnection"
    attributeCollection="#local.objIMAP#">  

<cfimap 
  action="getHeaderOnly" 
  connection="myConnection" 
  name="getHeaders">

<!--- Get the messagenumber of latest mail --->
<cfquery dbtype="query" name="getID">
   SELECT MAX(getHeaders.messagenumber) AS latestMessage
   FROM getHeaders
</cfquery>
<cfimap 
  action="getall" 
  connection="myConnection" 
  name="getAttachment"  
  attachmentpath="E:/"
  MessageNumber="#getID.latestMessage#">

如果邮件数量更多,我会收到超时。

还有其他方式来获取最新的邮件吗?

或者使用java我们可以在较短的时间内收到最新邮件的UIDmessageNumber吗?

请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可能需要将读取的消息更新为“读取”,如:

<cfimap action="MarkRead" connection = "Conn" messagenumber="#getHeaders.messagenumber#"> 
在完成工作的消息ID之后

因此您可以将最新消息查询为:

<cfquery dbtype="query" name="getMails">
  select * from getHeaders 
  where seen=<cfqueryparam value="no" cfsqltype="cf_sql_varchar"> 
 </cfquery>

您也可以使用收到的日期进行过滤

您可以参考http://shemy-coldfusion.blogspot.in/2013/03/coldfusion-code-to-get-multiple-mail.html