2012-01-12 159 views
4

我是Mule的新手,我嘗試創建Mule配置,通過imap從GMail帳戶中發送已發送的電子郵件,並將它們推送到處理並存儲它們的php腳本中一個我自己構建的自定義CRM。 對於初學者,我只是想將收件箱電子郵件轉儲到文本文件中,並計劃從那裏開始工作。Mule ESB:使用IMAP連接器從Gmail檢索電子郵件

當郵箱接收到新郵件時,Mule應該選取新郵件並自動處理。

騾子的配置看起來像這樣至今:

<imaps:connector name="IMAP" mailboxFolder="INBOX" validateConnections="false" doc:name="IMAP" /> 
<flow name="flows1Flow1" doc:name="flows1Flow1"> 
    <imaps:inbound-endpoint host="imap.gmail.com" port="993" user="[[username]]%40gmail.com" password="[[password]]" connector-ref="IMAP" doc:name="IMAP"/> 
    <file:outbound-endpoint path="D:\mailflow" outputPattern="msg_#[function:date].txt" doc:name="File"/> 
</flow> 

的程序運行,並得到了這一點:

INFO 2012-01-12 13:51:06,606 [main] org.mule.DefaultMuleContext: 
    ********************************************************************** 
    * Application: mailflow          * 
    * OS encoding: Cp1252, Mule encoding: UTF-8       * 
    *                 * 
    * Agents Running:             * 
    * JMX Agent              * 
    ********************************************************************** 
    INFO 2012-01-12 13:51:06,606 [main] org.mule.module.launcher.DeploymentService: 
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
    + Started app 'mailflow'       + 
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

然後只是坐在那裏無限期的,什麼都不做?

有文件顯示,因爲我使用IMAPS,我需要將TLS客戶端和TLS密鑰存儲添加到imaps連接器。我不確定這些是什麼或如何使用它們,而且文檔是高度專業化且難以理解的。 我也不確定這是什麼問題是第一位的,因爲應用程序不會在任何時候崩潰。

有沒有人成功用GMail創建imap流程? 請幫忙?

回答

1

只需創建這樣的連接器:

<imaps:connector name="IMAP"> 
    <imaps:tls-client/> 
    <imaps:tls-trust-store/> 
</imaps:connector> 

這應該做的伎倆。 另外,我會從用戶的定義中刪除「@gmail」,因爲這不是必需的。

再見!

德國

+0

也許我不清楚:tls-client和tls-trust-store元素都需要路徑屬性和storePassword。像這樣: '' '' 什麼是路徑指向/從哪裏來的密碼是什麼/哪裏?這是我的公鑰嗎?還是我做到了?它真的不清楚。 – user1145598 2012-01-14 18:39:20

+0

嗨,AFAIK你不需要聲明tls-client和trust-store的路徑。按照我向您展示的方式聲明它將使用JVM的默認密鑰庫。請試試看,並讓我們知道結果:) – German 2012-01-16 20:49:42

+1

Tx爲您的答覆。我一直在運行應用程序,沒有客戶端和信任存儲,它似乎運行良好(即它不會崩潰),但它仍然只是坐在那裏..它應該監視並從郵箱中拉入郵件,但它只是坐在那裏,沒有活動.. – user1145598 2012-01-22 21:54:57

0

你必須改變imap:connectorimap:inbound-endpointimaps:connectorimaps:inbound-endpoint

它對我來說工作正常。我有同樣的問題,現在已經解決了這個小小的變化。

+0

它爲什麼只適用於TLS? – 2015-03-03 15:29:08

0

只有非刪除,未讀郵件被分派爲消息(RetrieveMessageReceiver.java:148和149)

if (!messages[i].getFlags().contains(Flags.Flag.DELETED) 
    && !messages[i].getFlags().contains(Flags.Flag.SEEN)) 

如果文件夾是很大的,它需要一定的時間(甚至可能小時)去處理未讀消息的要點。

1

只是放在一個*,你不會看到錯誤,並仍然會正常工作。

<imaps:tls-client path="*" storePassword="*"/> 
    <imaps:tls-trust-store path="*" storePassword="*"/> 
相關問題