問題タブ [jakarta-mail]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2288 参照

java - アプリケーション間からJavaメールメッセージオブジェクトを渡す

新しいメールを取得するためにjavamailapi1.4.1を使用しています。電子メールを取得して解析するために2つのクラスが使用されています。「GetMail」クラスはメールサーバー(Gmail、yahooなど)と通信し、メッセージオブジェクトを取得します。次に、メッセージオブジェクトはさらに別のクラス「MailFormatter」クラスに渡されます。このクラスはメッセージオブジェクトを解析し、電子メールヘッダー(From、To、Subjectなど)を取得してから、マルチパートコンテンツを解析して本体と添付ファイルを取得します。 「メール取得」プロセスと「メールフォーマット」プロセスはどちらも非常にリソースを消費します。これらのクラスは個別のWebアプリケーションとして実装されます。このアプリケーションは、多数の電子メールIDについて新しい電子メールを監視します。これらの場合(「GetMail」と「MailFormatter」 ")個別のWebアプリケーションとして実装され、「GetMail」アプリから「MailFormatter」アプリにメッセージオブジェクトを渡すにはどうすればよいですか?取得したメッセージオブジェクトを特定の場所(「GetMail」アプリケーションと「MailFormatter」アプリケーションの両方に共通の場所)に永続化して、「GetMail」がその場所にメッセージオブジェクトを永続化できるようにする方法はありますか。次に、「MailFormatter」アプリはその場所から「メッセージ」オブジェクトを読み取り、解析プロセスを実行できます。メッセージオブジェクトはシリアル化できません。シリアル化できない場合、Javaメールメッセージオブジェクトの状態を保持するにはどうすればよいですか?この問題を解決するのを手伝ってください。アプリ ?取得したメッセージオブジェクトを特定の場所(「GetMail」アプリケーションと「MailFormatter」アプリケーションの両方に共通の場所)に永続化して、「GetMail」がその場所にメッセージオブジェクトを永続化できるようにする方法はありますか。次に、「MailFormatter」アプリはその場所から「メッセージ」オブジェクトを読み取り、解析プロセスを実行できます。メッセージオブジェクトはシリアル化できません。シリアル化できない場合、Javaメールメッセージオブジェクトの状態を保持するにはどうすればよいですか?この問題を解決するのを手伝ってください。アプリ ?取得したメッセージオブジェクトを特定の場所(「GetMail」アプリケーションと「MailFormatter」アプリケーションの両方に共通の場所)に永続化して、「GetMail」がその場所にメッセージオブジェクトを永続化できるようにする方法はありますか。次に、「MailFormatter」アプリはその場所から「メッセージ」オブジェクトを読み取り、解析プロセスを実行できます。メッセージオブジェクトはシリアル化できません。シリアル化できない場合、Javaメールメッセージオブジェクトの状態を保持するにはどうすればよいですか?この問題を解決するのを手伝ってください。メッセージオブジェクトはシリアル化できません。シリアル化できない場合、Javaメールメッセージオブジェクトの状態を保持するにはどうすればよいですか?この問題を解決するのを手伝ってください。メッセージオブジェクトはシリアル化できません。シリアル化できない場合、Javaメールメッセージオブジェクトの状態を保持するにはどうすればよいですか?この問題を解決するのを手伝ってください。

0 投票する
1 に答える
502 参照

java - Web アプリケーション間でメッセージ オブジェクトを共有する

2 つの Web アプリケーション (A と B) の間で Java メール メッセージ オブジェクトを共有する必要があります。

WebApplication A はメッセージを取得し、それを outputStream に書き込みます

FileOutputStream は、メッセージ オブジェクトを永続化するための最適な出力ストリームですか? メッセージ オブジェクトの永続化に ObjectOutputStream を使用することは可能ですか?

WebApplication B は、InputStream を介してメッセージ オブジェクトを読み取ります

WebApplication A を介して既に書き込まれているメール メッセージ オブジェクトが MimeMessage でない場合はどうなりますか? 入力ストリームを使用して非 MIME メッセージを読み取るにはどうすればよいですか?

MimeMessage コンストラクターは、最初のパラメーターとして sessionObj を義務付けていますか? WebApplicationB でこの sessionObj を取得するにはどうすればよいですか? このセッション オブジェクトを取得するには、同じ電子メール ID、電子メール パスワード、ポップ サーバー、および電子メール サーバーとのポート (Web アプリケーション A で既に使用されている) を使用してストア接続を再度確立する必要がありますか? 取得しても、このセッションオブジェクトはWebApplicationAで先に取得したセッションオブジェクトのままでしょうか?

(ファイル名の一意性を維持するために) メッセージ オブジェクトに名前を付けるために uid を使用しているため、WebApplication A と WebApplication B の間でこれらの uid を共有するにはどうすればよいですか? WebApplication B には、「F:/MessagesPersistedFolder」にある特定のファイルにアクセスするために uid が必要です。

前述の問題を解決するために私を助けてください。

0 投票する
1 に答える
606 参照

jakarta-mail - Webアプリケーション間でJavaメールメッセージオブジェクトを使用する

私はモバイル用の電子メールクライアントとして機能するWebアプリケーションを開発しています。このアプリケーションでは、ユーザーはログインして監視用の多数の電子メールIDを提供できます。Webアプリケーションには2つの主要なクラスがあります。1.MailGetter 2.MailFormatter

MailGetterクラスの動作:

  1. 10分ごとに実行されるTimertaskが開始されました
  2. 監視用に提供されているデータベースから多数の電子メールIDを取得します
  3. 最初の電子メールIDのメールサーバーとの接続を確立し、最近到着した電子メールメッセージオブジェクトを取得します
  4. メッセージオブジェクトをMailFormatterクラスに渡します

MailFormatterクラスの動作:

  1. 電子メールメッセージオブジェクトを解析します
  2. パーツを1つずつ解析するために、メッセージに多数のマルチパートがある場合に行われるさまざまな再帰呼び出し
  3. このメッセージと一緒に添付ファイルもダウンロードします
  4. xml文字列をMailGetterクラスに返します。これは、次の内容の単純なテキストファイルとして保存されます。

例:

MobileResponderServlet:別のサーブレットもWebアプリケーションにコーディングされており、単純なxmlテキストファイルを読み取り、読み取ったコンテンツをモバイルに送信します。

このアプリケーションの主なデメリットは、「MailGetter」クラスが「MailFormatter」クラスのすべての関数(再帰呼び出しを含む)の実行が完了するまで待機することです。制御が「MailFormatter」クラスから「MailGetter」クラスに返されると、メールサーバーから次のメッセージオブジェクトを取得し、それを「MailFormatter」クラスに渡します。そのため、モバイルユーザーへの新着メールについての情報提供には時間がかかります。「MailFormatter」クラスが個別のスレッドとして実装されている場合でも、1000個の「MailFormatter」スレッドを呼び出す単一の受信ボックス(単一のemailidの場合)に1000個の新しい電子メールがある場合を検討してください。これにより、プロセスのリソースが増えます。集中的な。

そこで、「MailFormatter」を「MailGetter」から削除することにしました。「MailGetter」は1つのサーバーで別のWebアプリケーションとして実行されますが、「MailFormatter」は別のサーバーで別のWebアプリケーションとして実行されます。最近の電子メールメッセージオブジェクト「MailGetter」を取得した後、Webアプリケーションは(message.writeTo(FileOutputstream)を介して)「MailFormatter」にも共通の場所にメッセージオブジェクトを保持します。次に、「MailFormatter」クラスは(MimeMessage(Session、InputStream)コンストラクターを介して)読み取り、メッセージオブジェクトを1つずつ解析してから、「XMLコンテンツ」を別の場所に格納します。この場所は「MobileResponderServlet」によって読み取られ、モバイルに送信されます。

このプロセスはリアルタイムで効率的ですか?これは、特に「MailGetter」と「MailFormatter」のWebアプリケーション間でメッセージオブジェクトを共有しているときに問題が発生しますか?他に方法があれば教えてください。このWebアプリケーションは、監視用に多数の電子メールIDを提供した5000人を超えるユーザー(最小)を処理します。

0 投票する
2 に答える
1426 参照

email - Web アプリからメールを送信するための推奨される方法は?

JBoss 4.2.3 に Web アプリがあり、電子メールを送信したいと考えています。私は次のようなことができます:

しかし、それは正しくありません。これはスケールしますか?

0 投票する
5 に答える
5836 参照

java - Google App Engine でメールを送信できません

Javamail を使用して電子メールを送信しようとしました。ただし、次のメッセージを受け取りました。

管理者アカウント (アプリのアップロードに使用) と、アプリにログインするユーザー アカウントからメールを送信しようとしました。(からUserService - getCurrentUser().getEmail()) 両方とも失敗しました。

セットアップする必要がある特別な設定があるかどうか疑問に思っていますか?

0 投票する
2 に答える
3224 参照

java - 「差出人」が実際のメール アドレスではなく、名前またはテキストであるようなメールを送信する

Java Mail API を使用してメールを送信しています。電子メールが受信トレイで受信されると、電子メールの送信に使用された電子メール アドレスが表示されます。差出人メール アドレスを非表示にして、テキストを表示したい。Facebookからメールを受け取ると、受信トレイに「xyz@facebook.com - メールの件名」ではなく「Facebook - メールの件名」と表示されるため、可能だと思います。

Java Mail APIを使用して同じことをしたい。

前もって感謝します。:)

0 投票する
5 に答える
56400 参照

java - JavaMail を使用してメールを送信するときの javax.net.ssl.SSLException

プロキシを使用して JavaMail API を使用してメールを送信するのを手伝ってくれる人はいますか?

0 投票する
1 に答える
1204 参照

java - Javaで電子メールを送信しようとしたときに接続例外が発生しました

Javamail APIを使用して、Javaコードでメールを送信しようとしています。問題は特定の回線で発生しています。

コードの一部は次のとおりです。


エラーはコードのc.connect()行で発生しています。私が得るエラーは次のとおりです。

そして、これが私が得るすべての説明です。この問題を解決する方法がわかりません。助けてください。

0 投票する
6 に答える
1167 参照

java - 複数の Java pop3 クライアントを取得して GMail と連携させる

Gmailアカウントに接続し、送信された添付ファイルをダウンロードする素晴らしいプログラムをJavaで作成しました。添付ファイルがダウンロードされると、開封済みとしてマークされ、二度とダウンロードされません。このプログラムは、1 つの添付ファイルが 2 回ダウンロードされることがないように、各プログラムが固有の添付ファイルをダウンロードする複数のインスタンスで実行する必要があります。問題は、添付ファイルが適切なサイズである場合、別のインスタンスが接続し、既読としてマークされる前に添付ファイルのダウンロードを開始すると、1 つのプログラムがまだダウンロード中であるということです。

さまざまなフラグを確認して設定し、フォルダーが開いているかどうかを確認しようとしましたが、何も機能していないようです。解決策はありますか?

更新: 迅速な回答ありがとうございます。悲しいことに、IMAP は他の理由によりオプションではありません。

0 投票する
3 に答える
30343 参照

java - Exchange サーバーは、javax.mail API で提供されるユーザー名/パスワードを受け入れません

署名付きの電子メール メッセージを送信する素敵な小さな Java クライアントがあります。メッセージを送信するためにユーザー名/パスワード認証を必要とする Exchange サーバーがあります。

Exchange サーバーに接続すると、次のエラーが表示されます。

他のサーバー (Unix サーバー) に接続しても問題ありません。

以下は、完全なデバッグ トレースです。私はそれを理解することはできません。