0

Email Adpater を使用して GMail アカウントからプログラムで電子メールを読み取る Spring Integration プロセスがあります。ローカル PC で実行すると、すべて正常に動作します。これを Linux サーバー (Linux 2.6.32-279.11.1.el6.x86_64) にデプロイすると、Spring で構成されたパラメーターではなく、アプリケーションが実行されるサーバー アカウントを使用しているように見えます。

mail.account@gmail.comに接続しようとしています

<mail:imap-idle-channel-adapter id="customAdapter"
      store-uri="imaps://mail.account:password@imap.gmail.com/INBOX"
      java-mail-properties="javaMailProperties"
      channel="receiveEmailChannel"
      should-delete-messages="false"
      should-mark-messages-as-read="true"
      auto-startup="true">
</mail:imap-idle-channel-adapter>

私の PC で実行すると、mail.debug のログから次の情報が得られます。ユーザーがmail.accountであることに注意してください

A0 CAPABILITY
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
A0 OK Thats all she wrote! y4if3012170qcp.27
DEBUG IMAP: AUTH: XOAUTH
DEBUG IMAP: AUTH: XOAUTH2
DEBUG IMAP: AUTH: PLAIN
DEBUG IMAP: AUTH: PLAIN-CLIENTTOKEN
DEBUG: protocolConnect login, host=imap.gmail.com, user=mail.account, password=<non-null>
A1 AUTHENTICATE PLAIN

Linux で実行すると、mail.debug のログから次の情報が得られます。ユーザーがserver.accountであることに注意してください

DEBUG: trying to connect to host "imap.gmail.com", port 993, isSSL true
* OK Gimap ready for requests from 999.999.9.999 u6if3552599icy.8
A0 CAPABILITY
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
A0 OK Thats all she wrote! u6if3552599icy.8
DEBUG IMAP: AUTH: XOAUTH
DEBUG IMAP: AUTH: XOAUTH2
DEBUG IMAP: AUTH: PLAIN
DEBUG IMAP: AUTH: PLAIN-CLIENTTOKEN
DEBUG: protocolConnect login, host=imap.gmail.com, user=server.account, password=<non-null>
DEBUG IMAP: AUTHENTICATE PLAIN command trace suppressed
DEBUG IMAP: AUTHENTICATE PLAIN command result: A1 NO Invalid credentials u6if3552599icy.8

これは Grails アプリであり、ビルドとデプロイを行うためのビルド管理システムが用意されているため、jar ファイルと構成は同じであると確信しています。

私はこれを追跡しようとしているロープの終わりにいます。誰もこれを経験したことがありますか?

4

1 に答える 1

0

これは最終的に、Grails のパッケージ化と war の配布に関する問題になりました。最終的な解決策にはさらに多くの作業と調査が必要ですが、それは別の StackOverflow の質問になる可能性があると思います。

基本的な問題は、Grails が WAR を作成するときに、Geronimo を含むいくつかのサーブレット コンテナーの jar ファイルが含まれることでした。Geronimo jar は存在しませんでしたが、WAR パッケージに含まれていました。展開されたバージョンの WAR については、アプリを停止し、 に移動しWEB-INF/libて削除geronimo-javamail_1.4_spec-1.7.1.jarし、アプリを再起動しました。今ではすべてがうまく機能しています。Geronimo での認証は、異なる/壊れている必要があります。

あとは、ディストリビューションから Geronimo jar を除外する方法を見つけるだけです。


最後の原因は、ws-clientに含まれていたプラグインでしたapplication.propertiesgeronimo-*.jarこれが削除されると、プロジェクトに含まれるファイルはなくなりました。

plugins.ws-client=1.0

于 2013-11-09T10:45:28.610 に答える