2012-01-12 16 views
4

私はMuleに新しく、imap経由でGmailアカウントから送信された電子メールをプルし、それらを処理して保存するPHPスクリプトにプッシュするMule設定を作成しようとしています私が構築したカスタム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」を削除します。

Bye!あなたがimaps:connectorimaps:inbound-endpointimap:connectorimap:inbound-endpointを変更する必要が

ドイツ

+0

おそらく私は明確ではありませんでした.tls-client要素とtls-trust-store要素の両方にパス属性とstorePasswordが必要です。 '' '' パスの意味は?どのパスワードはどこにありますか?私の公開鍵ですか?または私はそれを作るのですか?その本当に明確ではありません。 – user1145598

+0

こんにちは、AFAIKでは、tls-clientとtrust-storeのパスを宣言する必要はありません。私が示したように宣言することで、JVMのデフォルトのキーストアが使用されます。それをそのまま試してみて、結果を教えてください:) – German

+1

あなたの返事のためのTx。私はクライアントと信頼の店なしでアプリを実行していて、それは正常に実行されるようです(つまり、クラッシュしません)が、それはまだそこに座って..それは監視し、メールボックスからメッセージを引き出す必要がありますそこには何の活動もありません。 – user1145598

0

私にとってはうまくいっています。私は同じことが発行されている今、この小さな変化で修正されています。

+0

なぜそれはTLSでしか機能しませんか? –

0

のみ非削除し、未読メッセージがフォルダが大きい場合には、それが取得するいくつかの時間(潜在的にも時間)かかります

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

メッセージ(RetrieveMessageReceiver.java:148および149)として派遣されています未読メッセージを処理するポイント。

1

*と入力してもエラーは表示されず、正常に動作します。

<imaps:tls-client path="*" storePassword="*"/> 
    <imaps:tls-trust-store path="*" storePassword="*"/> 
関連する問題