パッケージ org.opengion.fukurou.mail

クラス MailMessage

java.lang.Object
org.opengion.fukurou.mail.MailMessage

public final class MailMessage extends Object
MailMessage は、受信メールを処理するためのラッパークラスです。 メッセージオブジェクトを引数にとるコンストラクタによりオブジェクトが作成されます。 日本語処置などを簡易的に扱えるように、ラッパクラス的な使用方法を想定しています。 必要であれば(例えば、添付ファイルを取り出すために、MailAttachFiles を利用する場合など) 内部のメッセージオブジェクトを取り出すことが可能です。 MailReceiveListener クラスの receive( MailMessage ) メソッドで、メールごとにイベントが 発生して、処理する形態が一般的です。
導入されたバージョン:
JDK5.0,
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ
    説明
    MailMessage(jakarta.mail.Message message, String host, String user)
    メッセージオブジェクトを指定して構築します。
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    void
    deleteMessage(boolean flag)
    メッセージをメールサーバーから削除するかどうかをセットします。
    メールの本文(Content)を返します。
    メールのヘッダー情報を文字列に変換して返します。
    メールの指定のヘッダー情報を文字列に変換して返します。
    内部の ホスト名を返します。
    jakarta.mail.Message
    内部の メッセージオブジェクトを返します。
    メッセージID を取得します。
    受領確認がセットされている場合の 返信先アドレスを返します。
    メールの内容を文字列として表現します。
    メールのタイトル(Subject)を返します。
    内部の ユーザー名を返します。
    static String
    エンコードされた文字列を、デコードします。
    void
    saveAttachFiles(String dir, boolean useMsgId)
    メールの添付ファイルが存在する場合に、指定のフォルダにセーブします。
    void
    メールの内容を文字列として指定のフォルダにセーブします。
    void
    メールの内容と、あれば添付ファイルを指定のフォルダにセーブします。

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

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • MailMessage

      public MailMessage(jakarta.mail.Message message, String host, String user)
      メッセージオブジェクトを指定して構築します。
      パラメータ:
      message - メッセージオブジェクト
      host - ホスト
      user - ユーザー
      変更履歴:
      6.4.3.1 (2016/02/12) Collections.synchronizedMap で同期処理を行います。
  • メソッドの詳細

    • getMessage

      public jakarta.mail.Message getMessage()
      内部の メッセージオブジェクトを返します。
      戻り値:
      メッセージオブジェクト
    • getHost

      public String getHost()
      内部の ホスト名を返します。
      戻り値:
      ホスト名
    • getUser

      public String getUser()
      内部の ユーザー名を返します。
      戻り値:
      ユーザー名
    • getHeader

      public String getHeader(String key)
      メールのヘッダー情報を文字列に変換して返します。 キーは、ヘッダー情報の取り出しと同一です。 例) Return-Path,Delivered-To,Date,From,To,Cc,Subject,Content-Type,Message-Id
      パラメータ:
      key - メールのヘッダーキー
      戻り値:
      キーに対するメールのヘッダー情報
    • getHeaders

      public String getHeaders()
      メールの指定のヘッダー情報を文字列に変換して返します。 ヘッダー情報の取り出しキーと同一の項目を リターンコードで結合しています。 Return-Path,Delivered-To,Date,From,To,Cc,Subject,Content-Type,Message-Id
      戻り値:
      メールの指定のヘッダー情報
      このメソッドは、nullを返しません
    • getSubject

      public String getSubject()
      メールのタイトル(Subject)を返します。 日本語文字コード処理も行っています。(JIS→unicode変換等)
      戻り値:
      メールのタイトル
      変更履歴:
      4.3.3.5 (2008/11/08) 日本語MIMEエンコードされた文字列を mimeDecode でデコードします。
    • getContent

      public String getContent()
      メールの本文(Content)を返します。 日本語文字コード処理も行っています。(JIS→unicode変換等)
      戻り値:
      メールの本文
    • getMessageID

      public String getMessageID()
      メッセージID を取得します。 基本的には、メッセージIDをそのまま(前後の >, <)は取り除きます。 メッセージIDのないメールは、"unknown." + SentData + "." + From という文字列を 作成します。 さらに、送信日やFrom がない場合、または、文字列として取り出せない場合、 "unknown" を返します。
      戻り値:
      メッセージID
      変更履歴:
      4.3.3.5 (2008/11/08) 送信時刻がNULLの場合の処理を追加
    • deleteMessage

      public void deleteMessage(boolean flag)
      メッセージをメールサーバーから削除するかどうかをセットします。
      パラメータ:
      flag - 削除するかどうか [true:行う/false:行わない]
    • getSimpleMessage

      メールの内容を文字列として表現します。 デバッグや、簡易的なメールの内容の取り出し、エラー時のメール保存に使用します。
      戻り値:
      メールの内容の文字列表現
      このメソッドは、nullを返しません
    • saveSimpleMessage

      public void saveSimpleMessage(String dir)
      メールの内容と、あれば添付ファイルを指定のフォルダにセーブします。 saveMessage( dir )と、saveAttachFiles( dir,true ) を同時に呼び出しています。
      パラメータ:
      dir - メールと添付ファイルをセーブするフォルダ
    • saveMessage

      public void saveMessage(String dir)
      メールの内容を文字列として指定のフォルダにセーブします。 メッセージID.txt という本文にセーブします。 デバッグや、簡易的なメールの内容の取り出し、エラー時のメール保存に使用します。
      パラメータ:
      dir - メールの内容をセーブするフォルダ
      変更履歴:
      8.5.4.2 (2024/01/12) PMD 7.0.0 CloseResource 対応
    • saveAttachFiles

      public void saveAttachFiles(String dir, boolean useMsgId)
      メールの添付ファイルが存在する場合に、指定のフォルダにセーブします。 添付ファイルが存在する場合のみ、処理を実行します。 useMsgId にtrue を設定すると、メッセージID というフォルダを作成し、その下に、 連番 + "_" + 添付ファイル名 でセーブします。(メールには同一ファイル名を複数添付できる為) false の場合は、指定のディレクトリ直下に、連番 + "_" + 添付ファイル名 でセーブします。
      パラメータ:
      dir - 添付ファイルをセーブするフォルダ
      useMsgId - メッセージIDフォルダを作成してセーブ場合:true 指定のディレクトリ直下にセーブする場合:false
      変更履歴:
      4.3.3.5 (2008/11/08) ディレクトリ指定時のセパレータのチェックを追加
    • getNotificationTo

      受領確認がセットされている場合の 返信先アドレスを返します。 セットされていない場合は、null を返します。 受領確認は、Disposition-Notification-To ヘッダにセットされる事とし、 このヘッダの内容を返します。セットされていなければ、null を返します。
      戻り値:
      返信先アドレス(Disposition-Notification-To ヘッダの内容)
    • mimeDecode

      public static String mimeDecode(String text)
      エンコードされた文字列を、デコードします。 MIMEエンコード は、 =? で開始するエンコード文字列 ですが、場合によって、前のスペースが 存在しない場合があります。 また、メーラーによっては、エンコード文字列を ダブルコーテーションでくくる処理が入っている 場合もあります。 これらの一連のエンコード文字列をデコードします。
      パラメータ:
      text - エンコードされた文字列(されていない場合は、そのまま返します)
      戻り値:
      デコードされた文字列
      変更履歴:
      4.3.3.5 (2008/11/08) 日本語MIMEエンコードされた文字列をデコードします。, 8.5.5.1 (2024/02/29) spotbugs CT_CONSTRUCTOR_THROW(コンストラクタで、Excweptionを出さない) class を final にすれば、警告は消える。