0

私は、GMail の受信トレイから電子メールを送信し、そこから電子メールを読み取り、アカウントを介して送信されたが、受信者のアドレスが認識されないために返された未配信のメール メッセージを処理する春のアプリを持っています。

私はこれをすべて設定して動作させていますが、返されたメールが読まれたときに取得したい送信メッセージにカスタムヘッダーも設定しています。アプリをデバッグすると、メッセージが正しく読み取られていることが示されますが、カスタム ヘッダー値がありません。

これが私の設定です:

<mail:inbound-channel-adapter id="imapAdapter"
        store-uri="#{mailIntegrationProperties['mail.imap.url']}"
        java-mail-properties="mailIntegrationProperties" 
        channel="receiveEmailChannel"
        should-delete-messages="false" 
        should-mark-messages-as-read="true"
        auto-startup="true"
        max-fetch-size="#{mailIntegrationProperties['mail.max.fetch.size']}">
    <int:poller time-unit="SECONDS" fixed-rate="#{mailIntegrationProperties['mail.poller.seconds']}" />
</mail:inbound-channel-adapter>

<int:channel id="receiveEmailChannel" />

<bean id="mailMessageReceiver" class="com.myapp.integration.mail.EmailMessageReceiver" />

<int:service-activator input-channel="receiveEmailChannel" ref="mailMessageReceiver" output-channel="emailEventMessageQueue" method="receive" />

簡潔にするためにサービスアクティベーターの出力チャネルをオフのままにしましたが、システムは期待どおりに機能していますが、メッセージを処理しているときにカスタムヘッダーだけが欠落しています。

そのカスタム ヘッダーを読み取るように Spring を構成する方法についてのアイデアはありますか?

乾杯!

4

1 に答える 1

1

SMTP送信メッセージに「X-foo」ヘッダーを設定していて、受信したメッセージでそれを見たいと思っていると思います。

に配置されたメッセージのペイロードは、受信しreceiveEmailChannelた MIME メッセージです。ヘッダーのフィルタリングはなく、受信したすべてのヘッダーが含まれます。

ヘッダーが表示されない場合は、メッセージに含まれていなかったことを意味します。

javamail のプロパティでデバッグをオンにする<prop key="mail.debug">true</prop>と、受信したメッセージがコンソールに表示されます (すべてのヘッダーを含む)。

于 2013-03-25T13:26:27.300 に答える