我正在尝试使用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
我们可以在较短的时间内收到最新邮件的UID
或messageNumber
吗?
请帮忙。提前谢谢。
答案 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