クラス DefaultMailManager

java.lang.Object
org.opengion.hayabusa.mail.DefaultMailManager
直系の既知のサブクラス:
MailManager_DB, MailManager_DIRECT, MailSendHistory

public class DefaultMailManager extends Object
タグ mailSender2 及びバッチによる送信の共通処理部分を実装しています。 送信タグ mailSender2 もしくは送信デーモンからパラメータを受取ります。 パラメータ中の定型文ID及びシステムIDで定型文マスタよりメールの定型文を取得して、 パラメータ値とマージしてメール文を合成します。同時に、宛先にセットした社員ID、 グループIDと定型文の宛先設定に基づき、社員マスタとグループマスタよりメールアドレス 情報を取得して送信を行います。 エラーがなければ送信した内容を履歴テーブル、宛先テーブルに書き込みます。 最後に本処理の呼出元に送信結果、エラーメッセージを返します。
機能分類
メールモジュール
導入されたバージョン:
JDK1.6
  • フィールドの概要

    フィールド
    修飾子とタイプ
    フィールド
    説明
    protected static final ApplicationInfo
    アプリケーション情報
    protected final String
    リソース系DBID
    protected static final String
    GE34(宛先テーブル) FGJ メールアカウントエラー "8"
    protected static final String
    GE34(宛先テーブル) FGJ アドレス取得エラー "7"
    protected static final String
    GE34(宛先テーブル) FGJ 送信済 "1"
    protected static final String
    GE34(宛先テーブル) FGJ 送信待 "0"
    protected final ConcurrentMap<String,String>
    8.5.7.0 (2024/03/29) サブクラスからアクセスできるように、protected に変更
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ
    説明
    デフォルトコンストラクター
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    void
    送信結果を履歴テーブル(GE32)と宛先テーブル(GE34)に登録します。
    void
    呼出元よりパラメータマップを受取って、メールオブジェクト(mailObj)を作成します。
    メール本文を返します。
    protected List<String>
    アドレスチェックのエラーリストを返します。
    メール送信者アドレスを返します。
    メール宛先マップをセットします。
    メールタイトルを返します。
    void
    メール送信を行うメソッドです。
    protected void
    setAttachFiles(String... attachs)
    添付ファイル配列をセットします(最大5個まで)。
    void
    メール送信認証パスワードをセットします。
    void
    メール送信時認証有無をセットします。
    void
    メール送信認証ユーザをセットします。
    void
    setContent(String content)
    メール本文をセットします。
    void
    setDebug(boolean debug)
    デバッグ情報の表示を行うかどうか[true/false]をセットします。
    void
    メール送信者アドレスをセットします。
    void
    setHost(String hostName)
    メール送信ホストをセットします。
    protected void
    パラメータマップをセットします。
    protected void
    メール宛先マップをセットします。
    void
    メール送信ポート番号をセットします。
    void
    メールタイトルをセットします。
    void
    setUseTLS(boolean flg)
    メール送信にSTARTTLSを利用するかのフラグをセットします。
    protected String
    trim(String src, int maxLen)
    指定の長さ以内の文字列を返します。

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

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

  • コンストラクタの詳細

    • DefaultMailManager

      デフォルトコンストラクター
      変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
  • メソッドの詳細

    • create

      public void create(ConcurrentMap<String,String> params)
      呼出元よりパラメータマップを受取って、メールオブジェクト(mailObj)を作成します。 メールオブジェクトは定型文ID及びシステムIDに基づいて定型文マスタからメールの定型文を取得して、 パラメータ値とマージしてメール文の各項目を合成します。 宛先については、宛先にセットした社員ID、グループIDと定型文の宛先設定に基づき、社員マスタとグループマスタ よりメールアドレスを取得して宛先マップを作成します。 まだ、添付ファイルのセット処理も行っています。
      パラメータ:
      params - パラメータのマップ
      変更履歴:
      5.6.6.0 (2013/07/05) host等の外部設定対応, 6.0.3.0 (2014/11/13) Ver6用キーワード変更, 6.4.3.1 (2016/02/12) 作成元のMapを、HashMap から ConcurrentHashMap に置き換え。, 6.4.3.3 (2016/03/04) ConcurrentHashMap を受け取ることを明確にするため、I/FをConcurrentMapに変更します。, 5.9.15.1 (2016/12/09) エラーリストのクリア, 5.9.29.2 (2018/02/16) STARTTLS対応(キーワードをVer5 にあわせます), 8.5.7.0 (2024/03/29) initParamMap をメソッドで処理し、attachFiles を設定する。
    • send

      public void send()
      メール送信を行うメソッドです。 createメソッドより合成した内容で送信を行います。アドレスエラー発生時に、 ユーザー設定(addrCheck)により再送/中止します。 メールサーバーに送信して、例外"SendFailedException"をキャッチできたら、 メールアカウントがエラーとなるのを分かります。そして、例外のオブジェクトから エラーとなっているアカウントを取得して宛先マップから除外して、残りのアドレスに再送できます。 送信後履歴テーブル(GE32)、宛先テーブル(GE34)に送信結果を書き込みます。
      変更履歴:
      5.4.3.2 (2012/01/06) 送信時認証対応, 6.0.3.0 (2014/11/13) Ver6用キーワード変更, 6.3.8.0 (2015/09/11) SSL接続するかどうかを指定するパラメータを追加します。, 5.9.29.2 (2018/02/16) STARTTLS対応(キーワードをVer5 にあわせます)
    • setDebug

      public void setDebug(boolean debug)
      デバッグ情報の表示を行うかどうか[true/false]をセットします。
      パラメータ:
      debug - [true:出力する/それ以外:しない]
    • setFromAddr

      public void setFromAddr(String from)
      メール送信者アドレスをセットします。
      パラメータ:
      from - 送信者アドレス
    • setTitle

      public void setTitle(String title)
      メールタイトルをセットします。
      パラメータ:
      title - メールタイトル
    • setContent

      public void setContent(String content)
      メール本文をセットします。
      パラメータ:
      content - メール本文
    • setHost

      public void setHost(String hostName)
      メール送信ホストをセットします。 初期値は、システム定数のCOMMON_MAIL_SERVER を使用します。 (初期値:システム定数のCOMMON_MAIL_SERVER[=])。
      パラメータ:
      hostName - 送信ホスト
      変更履歴:
      5.6.6.0 (2013/07/05)
    • setPort

      public void setPort(String port)
      メール送信ポート番号をセットします。 初期値は、システム定数のSMTP_PORT を使用します。 (初期値:システム定数のSMTP_PORT[=])。
      パラメータ:
      port - SMTPポート
      変更履歴:
      5.6.6.0 (2013/07/05)
    • setAuthType

      public void setAuthType(String type)
      メール送信時認証有無をセットします。 認証を行う場合は「POP_BEFORE_SMTP」と指定して下さい。 認証時には認証ユーザと認証パスワードを設定する必要があります。 初期値は、システム定数のMAIL_SEND_AUTH を使用します。 (初期値:システム定数のMAIL_SEND_AUTH[=])。
      パラメータ:
      type - 認証方式
      変更履歴:
      6.0.3.0 (2014/11/13) Ver6用キーワード変更
    • setAuthUser

      public void setAuthUser(String user)
      メール送信認証ユーザをセットします。 初期値は、システム定数のMAIL_SEND_AUTH_USER を使用します。 (初期値:システム定数のMAIL_SEND_AUTH_USER[=])。
      パラメータ:
      user - 認証ユーザ
      変更履歴:
      5.6.6.0 (2013/07/05)
    • setAuthPass

      public void setAuthPass(String pass)
      メール送信認証パスワードをセットします。 初期値は、システム定数のMAIL_SEND_AUTH_PASSWORD を使用します。 (初期値:システム定数のMAIL_SEND_AUTH_PASSWORD[=])。
      パラメータ:
      pass - 認証パスワード
      変更履歴:
      5.6.6.0 (2013/07/05)
    • setUseTLS

      public void setUseTLS(boolean flg)
      メール送信にSTARTTLSを利用するかのフラグをセットします。 初期値は、システム定数のMAIL_SEND_USE_STARTTLS を使用します。 (初期値:システム定数のMAIL_SEND_AUTH_PASSWORD[=])。
      パラメータ:
      flg - TLSの利用有無
      変更履歴:
      5.9.29.2 (2018/02/16) STARTTLS対応(キーワードをVer5 にあわせます)
    • getFromAddr

      public String getFromAddr()
      メール送信者アドレスを返します。
      戻り値:
      送信者アドレス
    • getTitle

      public String getTitle()
      メールタイトルを返します。
      戻り値:
      メールタイトル
    • getContent

      public String getContent()
      メール本文を返します。
      戻り値:
      メール本文
    • commitMailDB

      public void commitMailDB()
      送信結果を履歴テーブル(GE32)と宛先テーブル(GE34)に登録します。 登録時に、桁数オーバーにならないように、テーブル定義の桁数を上限として、 登録前に各項目の桁数整理を行います。
      変更履歴:
      5.5.5.1 (2012/08/07) リソース系DBID 付け忘れ対策, 5.9.1.3 (2015/10/30) 4000文字カットをやめる, 6.3.9.0 (2015/11/06) Map.keySet() ではなく、Map.values() を使う様に変更。, 6.4.2.0 (2016/01/29) DateSet.getDate( String ) を利用するように修正します。, 8.5.7.0 (2024/03/29) MailSendHistory の代わりに、このメソッドで処理するので、public に変更します。
    • setInitParams

      protected void setInitParams(ConcurrentMap<String,String> params)
      パラメータマップをセットします。
      パラメータ:
      params - パラメータのマップ
      変更履歴:
      6.4.3.1 (2016/02/12) 作成元のMapを、HashMap から ConcurrentHashMap に置き換え。, 6.4.3.3 (2016/03/04) ConcurrentHashMap を受け取ることを明確にするため、I/FをConcurrentMapに変更します。, 8.5.7.0 (2024/03/29) initParamMap をメソッドで処理し、attachFiles を設定する。
    • setAttachFiles

      protected void setAttachFiles(String... attachs)
      添付ファイル配列をセットします(最大5個まで)。
      パラメータ:
      attachs - 添付ファイルの可変長配列(ただし、最大5個まで)
    • setMailDstMap

      protected void setMailDstMap(ConcurrentMap<String,String[]> mailDst)
      メール宛先マップをセットします。
      パラメータ:
      mailDst - メール宛先マップ
      変更履歴:
      6.4.3.1 (2016/02/12) 作成元のMapを、HashMap から ConcurrentHashMap に置き換え。, 6.4.3.3 (2016/03/04) ConcurrentHashMap を受け取ることを明確にするため、I/FをConcurrentMapに変更します。
    • getMailDstMap

      メール宛先マップをセットします。
      戻り値:
      メール宛先マップ
      変更履歴:
      6.4.3.1 (2016/02/12) 作成元のMapを、HashMap から ConcurrentHashMap に置き換え。, 6.4.3.1 (2016/02/12) ConcurrentMap 系は、key,val ともに not null 制限です。, 6.4.3.3 (2016/03/04) ConcurrentHashMap を受け取ることを明確にするため、I/FをConcurrentMapに変更します。
    • trim

      protected String trim(String src, int maxLen)
      指定の長さ以内の文字列を返します。
      パラメータ:
      src - オリジナルの文字列
      maxLen - 指定の長さ
      戻り値:
      指定の長さに短縮された文字列
      変更履歴:
      5.9.1.3 (2015/10/30) 文字数ではなくByte数に変更
    • getErrList

      protected List<String> getErrList()
      アドレスチェックのエラーリストを返します。
      戻り値:
      エラーリスト