0

JBoss Seam で Jetty 7 を使用しており、2 つの Java メール セッションを構成しています。1 つはサポート通知用、もう 1 つは一般通知用です。

私が抱えている問題は、電子メールを送信する前に、JBoss Seam / JSF がイベント コンテキストで設定したセッションを適切な Java メール セッションに解決できないことが原因のようです。

セッションを解決できないため、デフォルトでポート 25 の localhost になります。奇妙なことに、以前と同じコードを使用してセッションを設定しています。Seam コンポーネントではなく、JNDI からセッションを取得しているだけです。

問題は JNDI からセッションを取得することにあり、何かが適切にプロキシされていないと推測しています。

ほとんどの場合、Web アプリケーションで電子メール通知をどのようにセットアップしますか? 1 つ以上をサポートすることがよくありますか? もしそうなら、構成はどのようになっていますか?

ウォルター

4

2 に答える 2

0

これを試しましたか(ドキュメントから):

<Configure id='wac' class="org.mortbay.jetty.webapp.WebAppContext">
...
<New id="mail" class="org.mortbay.jetty.plus.naming.Resource">
     <Arg><Ref id="wac"/></Arg>
     <Arg>mail/Session</Arg>
     <Arg>
       <New class="org.mortbay.naming.factories.MailSessionReference">
         <Set name="user">fred</Set>
         <Set name="password">OBF:1xmk1w261z0f1w1c1xmq</Set>
         <Set name="properties">
           <New class="java.util.Properties">
             <Put name="mail.smtp.host">XXX</Put>
             <Put name="mail.from">me@me</Put>
             <Put name="mail.debug">true</Put>
           </New>
          </Set>
       </New>
     </Arg>
</New>
</Configure>
于 2009-11-26T14:10:21.950 に答える
0

うーん、私のモジュールと JBoss Seam の間に問題がありました。繰り返しますが、私は非標準的なことをしていました (アプリケーションで複数の電子メール アドレスを使用し、送信元アドレスに基づいてメール セッションを動的に割り当てるなど)。

基本的に何が起こったのかというと、送信元アドレスの電子メールを解析し、それを使用して、JNDI でメール セッションを検索したことです。そのメール セッションをアクティブなイベント コンテキストに設定すると、JBoss Seam は自動的にメール内の "session" 値バインディングを探します。

...

これにはいくつかの問題がありました。mailSessionGoesHere にセッションという名前を付けてはなりません。奇妙な理由で、それは別のコンポーネントと競合します。また、メールを非同期で送信していたため、メールには独自のイベント コンテキストがありました。つまり、メールをトリガーするために使用されたイベント コンテキストに直接設定するのではなく、マップに渡す必要がありました。

すべてを整理したら、web.xml、jetty-env.xml、およびもちろん電子メール テンプレートで設定されている限り、選択した任意のアドレスから電子メールを送信できるようになりました。

ウォルター

于 2009-12-28T13:53:35.510 に答える