2015-04-06 2 views
1

Je suis en train d'obtenir le dernier courrier en utilisant cfimap comme ceci:mail en utilisant CFIMAP dans 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#"> 

Je recevais les délais d'attente dans le cas où nombre de mails sont plus.

Y a-t-il un autre moyen d'obtenir le dernier courrier?

Ou en utilisant java pouvons-nous obtenir le UID ou messageNumber du dernier courrier en moindre temps?

Aidez-nous s'il vous plaît. Merci d'avance.

Répondre

1

vous devrez peut-être mettre à jour les messages lus à « lire » comme:

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

après l'identification du message fait avec le travail.

de sorte que vous pouvez interroger les derniers messages comme:

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

aussi vous pouvez filtrer avec la date de réception

vous pouvez consulter http://shemy-coldfusion.blogspot.in/2013/03/coldfusion-code-to-get-multiple-mail.html

+0

Je ne pense pas marquer les lire va résoudre le problème. Dans le cas de plus de mails, le temps d'obtenir les en-têtes ou tout sera plus. – Beginner

+0

les marquer comme lus et passer à un autre dossier shemy