問題タブ [mime-message]

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 投票する
1 に答える
3385 参照

java - Mime7ビットエンコーディングとUnsupportedEncodingException

私はアプローチを実装しましたが、それが正しいものであるか、将来問題を引き起こす可能性があるかどうかはわかりません。
このメールを送る:

そして、このコードは次のとおりです。

例外は次のとおりです。

私はこの変更を行ったので、文字セットは常にutf-8であり、エンコーディングはquoted-printable

例外はもうありません、そしてそれplainContentは正しいです。しかし、それは簡単すぎる解決策のようです...私は将来どのような問題を抱えることができますか?例外をスキップして、カーセットとエンコードを強制せずに電子メールコンテンツを取得するためのより良い方法はありますか?

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

java - MimeMessageのコンテンツタイプを設定しますか?

mimeメッセージのコンテンツタイプについて1つの混乱があります。MIMEメッセージがあるとしましょう。マルチパートメッセージで、体の部分はこんな感じです

  1. プレーンテキスト、htmlテキストを含むMime本体部分(本文が太字の一部の文字など)
  2. アタッチメントを含む2番目のマイムボディパーツ、
  3. 1つのインライン画像を含む3番目のmimeボディ部分(cidでボディから参照されています)

ボディパーツを作成するとき、トップmimeメッセージのコンテンツタイプを明示的に設定してから、各ボディパーツを明示的に設定する必要がありますか?

はいの場合、上記の例では何をすべきですか?

multipart/alternativeHTML用にmultipart/mixed提案され、添付ファイル用にmultipart/related提案され、インライン用に提案されます。私はそれらすべてを使用しているので、完全なメッセージとさまざまなボディパーツのコンテンツタイプは何である必要がありますか?

参考までに、MimeMessage全体にもボディパーツにもコンテンツタイプを設定しなかった上記のシナリオを複製しようとしました。

しかし、それでも私はプレーンテキスト、本文の太字、添付ファイル、適切な場所のジェームズのインライン画像などの期待されるものを取得します

ジェームズがコンテンツタイプを設定せずにmimeメッセージと本文の部分を解釈するのはなぜですか。また、それらを正しい方法で表示するのはなぜですか。

参照用コード

上記のコードを使用すると、Jamesと統合されたThunderBirdの適切な場所で、正しいhtmlテキスト、プレーンテキスト、インラインイメージ、および添付ファイルを取得できます。

multipart/mixed、、multipart/alternativeをContent-Typeとして設定するタイミングと場所がわかりませんmultipart/relatedか、それともメールサーバーが内部で設定しますか?

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

java - 電子メールにインライン画像を埋め込み、cid を介して参照しますか?

MIME メッセージ付きのメールでインライン画像を送信しています。これは同じための簡単なコードです。これはうまくいっています。私の質問は、MimeMessage コンテンツ タイプをマルチパート/関連として設定していない (マルチパート サブタイプも関連として設定していない) ことですが、コードは正常に動作しており、予想される位置でインライン イメージを取得できます。画像部分をcidで参照している場合、またはサーバーがそれを処理する場合、Content-Typeをmultipart/relatedとして設定することを本当に気にする必要がありますか?

参考までに、私のメール クライアントは Outlook、Lotusnotes、Yahoo、Gmail、Thunderbird です。

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

java - これらの添付ファイル、htmlbody、インライン画像、またはそれらすべてを含む MIME メッセージを送信しますか?

知っている限り、私の電子メール アプリケーションは、添付ファイル付きのプレーン テキストのみをサポートしていました。添付リストがnullの場合は簡単な方法で処理していました.mimeメッセージを送信するだけで、添付リストがnullでない場合は、添付ファイルごとにボディパーツを作成し、ボディに1つ作成していました。MIME メッセージに設定されているマルチパートでそれらを追加します。

しかし、今は html 部分とインライン画像をサポートする必要があります (画像は添付ファイルとして送信され、html 本文は参照されます)。私は MIME の基本、つまり各 MIME タイプの本文部分を作成する方法を知っています。しかし、実際には、本体と添付ファイルのリストに含まれるものがわからない場合、実行時に本体のパーツを作成する方法がわかりません。たとえば、本文には、プレーン テキスト、html 本文、添付ファイル付きの html 本文、添付ファイル付きのインライン イメージ付きの html 本文、または添付ファイル付きのプレーン ボディのみを含めることができます。

率直に言って、上記の順列と組み合わせの電子メール本文と添付ファイルリストを処理する方法がわかりません. ....)。本文の内容と添付リストに基づいて、これらすべてのシナリオを処理する標準コードはありますか。私を正しい方向に向けてください。

これは、添付ファイル付きのプレーン テキストのみをサポートしていた古いメソッド シグネチャです。

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

java - デフォルトの一意の境界文字列を上書きし、JavaMail の MimeMultipart を使用して独自の境界を作成する方法は?

私が使用する Web アプリには、(「会社の MIME 境界」) のような特定の境界文字列が必要です。

MimeMultipart のデフォルトの動作をオーバーライドする方法が見つかりませんでした。

Multipart mp = new MimeMultipart();

一意の境界文字列は常にコンストラクターによって作成されます。この動作をオーバーライドして独自の境界文字列を作成したいのですが、API が見つからなかったため、これを行うことができません。

content-type に設定しても機能せず、MimeMultipart がデフォルトの境界文字列を作成しているため、常に一意の境界文字列が作成されます。

mimeMsg.setHeader("Content-Type","multipart/mixed;boundary="company mime boundary");

誰でもこれについて提案/助けてください。

このデフォルトの動作をオーバーライドする方法は?

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

ios - 誰でも iOS 用にコンパイルされた模倣物

IMAP メッセージ用の MIME / マルチパート パーサーを作成したいと考えています。mimeticでこれができるというリンクはほとんどありませんが、iOS 用にコンパイルすることはできません。どんな助けでも大歓迎です。

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

java - Spring MimeMessageHelper: 複数の CC を追加すると AddressException

メール メッセージに複数の CC アドレスを追加する必要がありますが、次の例外が引き続き発生します。

これが私のコードです:

ccAddress の元の値は「email@email.com;email@email.com」です。実際のアドレスは有効です。例外がスローされ、CC アドレスの末尾に「,15」が追加されるのはなぜですか?

ありがとう

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

java - mockitoでマルチパートMIMEリクエストをモックする

私はMockitoにかなり慣れていないので、テストのためにサーブレットをモックしています。フォーム データを MimeMultiPart としてサーブレットに送信する HttpServletRequest のモックを作成する際に問題が発生しています。私のサーブレットではrequest.getInputStream()、次のように呼び出します。

入力ストリームをモックアウトすると、MimeMultiPart メッセージ全体を作成し、以下のコードでそれから ServletInputStream を返そうとします

このテストを実行すると、次のエラーが表示されoutStream.writeObject(object)ます。

残りのスタック トレースを投稿する必要はありません。問題は MimeMultiPart がシリアル化できないことだと確信していますが、これを修正する方法がわかりません。リクエストをモックアウトする別の方法はありますか? 私は途方に暮れています:(

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

java - MimeMessage で改行文字が正しく解釈されませんか?

デバッガーで検査したときのフォーマットされたコンテンツは次のとおりです

しかし、サンダーバードで受信すると、以下のような 1 行で完全なメッセージが表示されます。コンテンツを html として送信するときに改行文字が正しく解釈されない

これがメッセージをhtmlとして送信する方法です

単にテキストを msg.setText(body, CHARSET_UTF_8) として送信すると、メッセージが正しい形式で表示されます。つまり、次の行に「インターネット経由でメールを送信しています」と表示されます。テキストを HTML として送信するときに改行文字が正しく解釈されない理由がわかりません。

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

java - JavaはMimeMessage msgにヘッダーを追加します

私が解決している問題は、受信者(メール、cc/bcc)が存在しない場合にメールを送信するときに、送信者に配信ステータス通知(失敗)メールを受信させたくないということです。

私が実装している解決策は、メールPrevent-NonDelivery-Reportに新しいヘッダーを追加することです

JavaでMimeMessage msgに新しいヘッダーを追加したい

props.setProperty("mail.smtp.dsn.notify", "NEVER") をセッションのプロパティに追加して問題を解決する解決策を見つけました