2015-04-06 61 views
1

我試圖讓使用cfimap這樣最新的郵件:獲取使用CFIMAP最新郵件的ColdFusion

<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嗎?

請幫忙。提前致謝。隨着工作的完成消息ID後

<cfimap action="MarkRead" connection = "Conn" messagenumber="#getHeaders.messagenumber#"> 

回答

1

您可能需要更新的已讀郵件「讀」等。

這樣你就可以查詢最新的消息是:

<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

+0

我不認爲它們標記閱讀是要解決問題。如果有更多的郵件,獲得'headers'或'all'的時間會更多。 – Beginner 2015-04-11 17:31:15

+0

將它們標記爲已讀並移至其他文件夾 shemy 2015-04-13 09:50:23