クラス MimeMessageHelper

java.lang.ObjectSE
org.springframework.mail.javamail.MimeMessageHelper

public class MimeMessageHelper extends ObjectSE
MimeMessageEE を生成するためのヘルパークラス。

SimpleMailMessage の単純な setter をミラーリングし、値を基礎となる MimeMessage に直接適用します。このヘルパークラスのすべてのメソッドによって自動的に適用される、メッセージ全体の文字エンコードを定義できます。

HTML テキストコンテンツ、イメージなどのインライン要素、一般的なメール添付ファイルのサポートを提供します。メールアドレスに付随する個人名もサポートします。基になる MimeMessage オブジェクトに詳細設定を直接適用できることに注意してください!

通常、MimeMessagePreparator 実装または JavaMailSender クライアントコードで使用されます。MimeMessage ラッパーとしてインスタンス化するだけで、ラッパーで setter を呼び出し、基礎となる MimeMessage をメール送信に使用します。JavaMailSenderImpl によって内部的にも使用されます。

インラインイメージと PDF 添付ファイル付きの HTML メールのサンプルコード:

 mailSender.send(new MimeMessagePreparator() {
   public void prepare(MimeMessage mimeMessage) throws MessagingException {
     MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
     message.setFrom("[email protected]");
     message.setTo("[email protected]");
     message.setSubject("my subject");
     message.setText("my text <img src='cid:myLogo'>", true);
     message.addInline("myLogo", new ClassPathResource("img/mylogo.gif"));
     message.addAttachment("myDocument.pdf", new ClassPathResource("doc/myDocument.pdf"));
   }
 });
共通インターフェースを介して単純なメッセージまたは MIME メッセージとメッセージ入力コードをやり取りできるようにするために、このヘルパーの上で MimeMailMessageSimpleMailMessage と同様に共通の MailMessage インターフェースを実装する)の使用を検討してください。

マルチパートメールに関する警告 : HTML テキストのみを含み、インライン要素または添付ファイルを含まない単純な MIME メッセージは、HTML レンダリングが可能なメールクライアントで多かれ少なかれ機能します。ただし、インライン要素と添付ファイルは、依然としてメールクライアント間の主要な互換性の課題です。: インライン要素と添付ファイルを Microsoft Outlook、Lotus Notes、Mac Mail で機能させることは事実上不可能です。ニーズに合わせて特定のマルチパートモードを選択することを検討してください: MULTIPART_MODE 定数の javadoc には、より詳細な情報が含まれています。

導入:
19.01.2004
作成者:
Juergen Hoeller, Sam Brannen
関連事項:
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final int
    型が "mixed" の単一ルートのマルチパート要素を持つマルチパートメッセージを示す定数。
    static final int
    ルートのマルチパート要素が「混合」され、さらに「関連」型のネストされたマルチパート要素を持つマルチパートメッセージを示す定数。
    static final int
    非マルチパートメッセージを示す定数。
    static final int
    「関連」型の単一ルートのマルチパート要素を持つマルチパートメッセージを示す定数。
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    単純なテキストメッセージ(マルチパートコンテンツなし、つまり、メッセージを想定)を想定して、指定された MimeMessage の新しい MimeMessageHelper を作成します。
    MimeMessageHelper(MimeMessageEE mimeMessage, boolean multipart)
    リクエストされた場合、マルチパートモード(代替テキスト、インライン要素、添付ファイルをサポート)で、指定された MimeMessage の新しい MimeMessageHelper を作成します。
    MimeMessageHelper(MimeMessageEE mimeMessage, boolean multipart, StringSE encoding)
    リクエストされた場合、マルチパートモード(代替テキスト、インライン要素、添付ファイルをサポート)で、指定された MimeMessage の新しい MimeMessageHelper を作成します。
    MimeMessageHelper(MimeMessageEE mimeMessage, int multipartMode)
    リクエストされた場合、マルチパートモード(代替テキスト、インライン要素、添付ファイルをサポート)で、指定された MimeMessage の新しい MimeMessageHelper を作成します。
    MimeMessageHelper(MimeMessageEE mimeMessage, int multipartMode, StringSE encoding)
    リクエストされた場合、マルチパートモード(代替テキスト、インライン要素、添付ファイルをサポート)で、指定された MimeMessage の新しい MimeMessageHelper を作成します。
    単純なテキストメッセージ(マルチパートコンテンツなし、つまり、メッセージを想定)を想定して、指定された MimeMessage の新しい MimeMessageHelper を作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    addAttachment(StringSE attachmentFilename, DataSourceEE dataSource)
    jakarta.activation.DataSource からコンテンツを取得して、MimeMessage に添付ファイルを追加します。
    void
    addAttachment(StringSE attachmentFilename, FileSE file)
    java.io.File からコンテンツを取得して、MimeMessage に添付ファイルを追加します。
    void
    addAttachment(StringSE attachmentFilename, InputStreamSource inputStreamSource)
    org.springframework.core.io.InputStreamResource からコンテンツを取得して、MimeMessage に添付ファイルを追加します。
    void
    addAttachment(StringSE attachmentFilename, InputStreamSource inputStreamSource, StringSE contentType)
    org.springframework.core.io.InputStreamResource からコンテンツを取得して、MimeMessage に添付ファイルを追加します。
    void
    void
    void
    addBcc(StringSE bcc, StringSE personal)
    void
    void
    void
    addCc(StringSE cc, StringSE personal)
    void
    addInline(StringSE contentId, DataSourceEE dataSource)
    MimeMessage にインライン要素を追加し、jakarta.activation.DataSource からコンテンツを取得します。
    void
    addInline(StringSE contentId, FileSE file)
    MimeMessage にインライン要素を追加し、java.io.File からコンテンツを取得します。
    void
    addInline(StringSE contentId, InputStreamSource inputStreamSource, StringSE contentType)
    MimeMessage にインライン要素を追加し、org.springframework.core.InputStreamResource からコンテンツを取得し、コンテンツ型を明示的に指定します。
    void
    addInline(StringSE contentId, Resource resource)
    MimeMessage にインライン要素を追加し、org.springframework.core.io.Resource からコンテンツを取得します。
    void
    void
    void
    addTo(StringSE to, StringSE personal)
    protected DataSourceEE
    createDataSource(InputStreamSource inputStreamSource, StringSE contentType, StringSE name)
    指定された InputStreamSource のアクティベーションフレームワーク DataSource を作成します。
    protected void
    createMimeMultiparts(MimeMessageEE mimeMessage, int multipartMode)
    使用する MimeMultipart オブジェクトを決定します。これは、一方で添付ファイルを保存し、他方でテキストおよびインライン要素を保存するために使用されます。
    protected StringSE
    指定された MimeMessage のデフォルトエンコーディングを決定します。
    protected FileTypeMapEE
    指定された MimeMessage のデフォルトの Java Activation FileTypeMap を決定します。
    このメッセージに使用されている特定の文字エンコードがあれば、それを返します。
    この MimeMessageHelper が使用する FileTypeMap を返します。
    基になる MimeMessage オブジェクトを返します。
    基になる MIME "multipart/related" オブジェクトがある場合は、それを返します。
    ルート MIME "multipart/mixed" オブジェクトがある場合は、それを返します。
    boolean
    このヘルパーの #addAttachment メソッドに渡された添付ファイル名をエンコードするかどうかを返します。
    final boolean
    このヘルパーがマルチパートモードかどうか、つまり
    boolean
    このヘルパーが渡されたすべてのアドレスを検証するかどうかを返します。
    void
    void
    void
    void
    void
    void
    void
    void
    void
    setEncodeFilenames(boolean encodeFilenames)
    このヘルパーの #addAttachment メソッドに渡される添付ファイル名をエンコードするかどうかを設定します。
    void
    Java Activation フレームワーク FileTypeMap を設定して、メッセージに追加されるインラインコンテンツおよび添付ファイルのコンテンツ型を決定するために使用します。
    void
    void
    void
    setFrom(StringSE from, StringSE personal)
    protected final void
    この MimeMessageHelper で使用するために、指定された MimeMultipart オブジェクトを設定します。
    void
    setPriority(int priority)
    メッセージの優先度( "X-Priority" ヘッダー)を設定します。
    void
    void
    void
    setReplyTo(StringSE replyTo, StringSE personal)
    void
    メッセージの送信日を設定します。
    void
    正しいエンコードを使用して、メッセージの件名を設定します。
    void
    指定されたテキストを非マルチパートモードのコンテンツとして直接設定するか、マルチパートモードのデフォルトのボディパーツとして設定します。
    void
    setText(StringSE text, boolean html)
    指定されたテキストを非マルチパートモードのコンテンツとして直接設定するか、マルチパートモードのデフォルトのボディパーツとして設定します。
    void
    setText(StringSE plainText, StringSE htmlText)
    与えられたプレーンテキストと HTML テキストを代替として設定し、両方のオプションをメールクライアントに提供します。
    void
    void
    void
    void
    void
    setValidateAddresses(boolean validateAddresses)
    このヘルパーに渡されるすべてのアドレスを検証するかどうかを設定します。
    protected void
    指定されたメールアドレスを検証します。
    protected void
    指定されたすべてのメールアドレスを検証します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • MULTIPART_MODE_NO

      public static final int MULTIPART_MODE_NO
      非マルチパートメッセージを示す定数。
      関連事項:
    • MULTIPART_MODE_MIXED

      public static final int MULTIPART_MODE_MIXED
      型が "mixed" の単一ルートのマルチパート要素を持つマルチパートメッセージを示す定数。テキスト、インライン要素、添付ファイルはすべて、そのルート要素に追加されます。

      これは Spring 1.0 のデフォルトの動作です。Outlook では正常に動作することがわかっています。ただし、他のメールクライアントは、インライン要素を添付ファイルとして誤って解釈したり、添付ファイルをインラインで表示したりする傾向があります。

      関連事項:
  • コンストラクターの詳細

    • MimeMessageHelper

      public MimeMessageHelper(MimeMessageEE mimeMessage)
      単純なテキストメッセージ(マルチパートコンテンツ、つまり代替テキストやインライン要素や添付ファイルがない)を想定して、指定された MimeMessage の新しい MimeMessageHelper を作成します。

      メッセージの文字エンコードは、渡された場合、渡された MimeMessage オブジェクトから取得されます。そうでない場合、JavaMail のデフォルトのエンコードが使用されます。

      パラメーター:
      mimeMessage - 作業する MIME メッセージ
      関連事項:
    • MimeMessageHelper

      public MimeMessageHelper(MimeMessageEE mimeMessage, @Nullable StringSE encoding)
      単純なテキストメッセージ(マルチパートコンテンツ、つまり代替テキストやインライン要素や添付ファイルがない)を想定して、指定された MimeMessage の新しい MimeMessageHelper を作成します。
      パラメーター:
      mimeMessage - 作業する MIME メッセージ
      encoding - メッセージに使用する文字エンコード
      関連事項:
    • MimeMessageHelper

      public MimeMessageHelper(MimeMessageEE mimeMessage, boolean multipart) throws MessagingExceptionEE
      リクエストされた場合、マルチパートモード(代替テキスト、インライン要素、添付ファイルをサポート)で、指定された MimeMessage の新しい MimeMessageHelper を作成します。

      multipartMode 引数を取る MimeMessageHelper コンストラクターを使用して、MULTIPART_MODE_MIXED_RELATED 以外の特定のマルチパートモードを選択することを検討してください。

      メッセージの文字エンコードは、渡された場合、渡された MimeMessage オブジェクトから取得されます。そうでない場合、JavaMail のデフォルトのエンコードが使用されます。

      パラメーター:
      mimeMessage - 作業する MIME メッセージ
      multipart - 代替テキスト、インライン要素、添付ファイルをサポートするマルチパートメッセージを作成するかどうか (MULTIPART_MODE_MIXED_RELATED に対応)
      例外:
      MessagingExceptionEE - マルチパート作成が失敗した場合
      関連事項:
    • MimeMessageHelper

      public MimeMessageHelper(MimeMessageEE mimeMessage, boolean multipart, @Nullable StringSE encoding) throws MessagingExceptionEE
      リクエストされた場合、マルチパートモード(代替テキスト、インライン要素、添付ファイルをサポート)で、指定された MimeMessage の新しい MimeMessageHelper を作成します。

      multipartMode 引数を取る MimeMessageHelper コンストラクターを使用して、MULTIPART_MODE_MIXED_RELATED 以外の特定のマルチパートモードを選択することを検討してください。

      パラメーター:
      mimeMessage - 作業する MIME メッセージ
      multipart - 代替テキスト、インライン要素、添付ファイルをサポートするマルチパートメッセージを作成するかどうか (MULTIPART_MODE_MIXED_RELATED に対応)
      encoding - メッセージに使用する文字エンコード
      例外:
      MessagingExceptionEE - マルチパート作成が失敗した場合
      関連事項:
    • MimeMessageHelper

      public MimeMessageHelper(MimeMessageEE mimeMessage, int multipartMode) throws MessagingExceptionEE
      リクエストされた場合、マルチパートモード(代替テキスト、インライン要素、添付ファイルをサポート)で、指定された MimeMessage の新しい MimeMessageHelper を作成します。

      メッセージの文字エンコードは、渡された場合、渡された MimeMessage オブジェクトから取得されます。そうでない場合、JavaMail のデフォルトのエンコードが使用されます。

      パラメーター:
      mimeMessage - 作業する MIME メッセージ
      multipartMode - 作成するマルチパートメッセージの種類 (MIXED、RELATED、MIXED_RELATED、NO)
      例外:
      MessagingExceptionEE - マルチパート作成が失敗した場合
      関連事項:
    • MimeMessageHelper

      public MimeMessageHelper(MimeMessageEE mimeMessage, int multipartMode, @Nullable StringSE encoding) throws MessagingExceptionEE
      リクエストされた場合、マルチパートモード(代替テキスト、インライン要素、添付ファイルをサポート)で、指定された MimeMessage の新しい MimeMessageHelper を作成します。
      パラメーター:
      mimeMessage - 作業する MIME メッセージ
      multipartMode - 作成するマルチパートメッセージの種類 (MIXED、RELATED、MIXED_RELATED、NO)
      encoding - メッセージに使用する文字エンコード
      例外:
      MessagingExceptionEE - マルチパート作成が失敗した場合
      関連事項:
  • メソッドの詳細