1

ラバを学び始めたばかりですので、これが非常に基本的な質問である場合はご容赦ください。

メールボックスを監視するようにmuleを正常に構成したので、メールが届くたびに、メールをテキストファイルに書き込みます(テスト用)。

次に、このメールを解析して、メールから/ From/Toというメッセージを取得する必要があります。

<flow name="testFlow" doc:name="testFlow">
        <imap:inbound-endpoint host="ip"
            port="143" user="username" password="pwd" doc:name="IMAP"
            responseTimeout="10000" transformer-refs="Message_Properties">
        </imap:inbound-endpoint>
        <file:outbound-endpoint path="C:\"
            outputPattern="#[function:datestamp].dat" doc:name="File">
        </file:outbound-endpoint>
    </flow>

以下の式を使用してヘッダー情報を取得できると思いました(式トランスフォーマーを使用)

#[inboundProperties['email-header-name']] 

しかし、これはうまくいかないようです。以下の表現も試してみましたが、うまくいきませんでした。

#[map-payload:HOST]
#[map-payload:MESSAGE]
#[map-payload:TIMESTAMP]

誰かが助けることができますか?また、利用可能な式のリストを含むドキュメントがあるかどうかを誰かが知っていますか?

編集:

プロパティを表示するためにロガーを含めましたが、すべてのプロパティが表示されましたが、本文が見つかりませんでした。また、を使用してfromAddressを取得してみました。

#[map-payload:fromAddress] and #[inboundProperties['fromAddress']] 

しかし、うまくいきませんでした、誰かが私がどこが間違っているのか教えてもらえますか?

プロパティは次のようなものです、

inbound.fromAddress=Service <service@xx.com> 
inbound.subject=Test Final inbound.toAddresses=Service

編集2:

これは私が試したものですが、機能しません:(

メールの件名を取得してファイルに書き込むか、メールの件名に基づいてロガーを使用して表示しようとしていますが、以下のエラーが発生します。

ERROR 2013-02-07 19:22:45,275 [[test].connector.file.mule.default.dispatcher.01] org.mule.exception.DefaultMessagingExceptionStrategy:
********************************************************************************
Message : Could not find a transformer to transform "SimpleDataType{type=javax.mail.internet.MimeMessage, mimeType='*/*'}" to "SimpleDataType{type=java.io.InputStream, mimeType='*/*'}".
Code : MULE_ERROR-236 

どこを間違えているのか教えていただけますか?

<flow name="testFlow1" doc:name="testFlow1">
<imap:inbound-endpoint host="ip"
port="143" user="uname" password="pwd" doc:name="IMAP"
responseTimeout="10000" disableTransportTransformer="true">
</imap:inbound-endpoint>
<logger message="#[message.inboundProperties['inbound.fromAddress']]" level="INFO" doc:name="Logger"/>
<choice doc:name="Choice">
<when expression="message.inboundProperties['inbound.subject']=='plain test'">
<processor-chain>
<logger message="#[message.inboundProperties['inbound.fromAddress']]" level="INFO" doc:name="Logger"/>
</processor-chain>
</when>
<otherwise>
<processor-chain>
<file:outbound-endpoint path="C:\mule" outputPattern="#[function:datestamp].dat" responseTimeout="10000" disableTransportTransformer="true" doc:name="File">
</file:outbound-endpoint>
</processor-chain>
</otherwise>
</choice>
</flow>  
4

1 に答える 1

4

残念ながら、IMAPコネクタのドキュメントには、新しいメッセージを受信したときに作成されるメッセージのプロパティが記載されていません。以下を追加することにより、作成されたすべてのプロパティを見つけることができます。

<logger level="WARN" />

imap:inbound-endpoint。これにより、プロパティを含むすべてのメッセージメタ情報がWARNレベルでログに記録されます。

プロパティ名はMailPropertiesJavaDocにもあります。たとえばinbound.fromAddress、送信者の電子メールアドレスを含むインバウンドプロパティです。

マルチパートメールでない限り、メッセージ本文はテキストメールの内容です。その場合、最初の部分がである場合text/plain、それはメッセージペイロードとして設定されます。そうでない場合、すべての部分が受信メッセージの添付ファイルとして使用可能になります。

于 2013-02-07T18:34:51.477 に答える