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

# クラス DefaultMailManager

java.lang.Object
org.opengion.hayabusa.mail.DefaultMailManager

直系の既知のサブクラス:
  `MailManager_DB`, `MailManager_DIRECT`

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

機能分類
  メールモジュール
導入されたバージョン:
  JDK1.6

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `protected static final ApplicationInfo`
  `APP_INFO`
  アプリケーション情報
  `protected final String`
  `DBID`
  リソース系DBID
  `protected static final String`
  `FGJ_ACNT_ERR`
  フラグ定数 "8"
  `protected static final String`
  `FGJ_ADDR_ERR`
  フラグ定数 "7"
  `protected static final String`
  `FGJ_SEND_OVER`
  フラグ定数 "1"
  `protected static final String`
  `FGJ_SEND_WAIT`
  フラグ定数 "0"

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `DefaultMailManager()`
  デフォルトコンストラクター

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `protected void`
  `commitMailDB()`
  送信結果を履歴テーブル(GE32)と宛先テーブル(GE34)に登録します。
  `void`
  `create(ConcurrentMap<String,String> params)`
  呼出元よりパラメータマップを受取って、メールオブジェクト(mailObj)を作成します。
  `String`
  `getContent()`
  メール本文を返します。
  `protected List<String>`
  `getErrList()`
  アドレスチェックのエラーリストを返します。
  `String`
  `getFromAddr()`
  メール送信者アドレスを返します。
  `protected ConcurrentMap<String,String[]>`
  `getMailDstMap()`
  メール宛先マップをセットします。
  `String`
  `getTitle()`
  メールタイトルを返します。
  `void`
  `send()`
  メール送信を行うメソッドです。
  `protected void`
  `setAttachFiles(String attach1, String attach2, String attach3, String attach4, String attach5)`
  添付ファイル配列をセットします。
  `void`
  `setAuthPass(String pass)`
  メール送信認証パスワードをセットします。
  `void`
  `setAuthType(String type)`
  メール送信時認証有無をセットします。
  `void`
  `setAuthUser(String user)`
  メール送信認証ユーザをセットします。
  `void`
  `setContent(String content)`
  メール本文をセットします。
  `void`
  `setDebug(boolean debug)`
  デバッグ情報の表示を行うかどうか[true/false]をセットします。
  `void`
  `setFromAddr(String from)`
  メール送信者アドレスをセットします。
  `void`
  `setHost(String hostName)`
  メール送信ホストをセットします。
  `protected void`
  `setInitParams(ConcurrentMap<String,String> params)`
  パラメータマップをセットします。
  `protected void`
  `setMailDstMap(ConcurrentMap<String,String[]> mailDst)`
  メール宛先マップをセットします。
  `void`
  `setPort(String port)`
  メール送信ポート番号をセットします。
  `void`
  `setTitle(String title)`
  メールタイトルをセットします。
  `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`

- ## フィールド詳細

  - ### FGJ_SEND_WAIT

    protected static final String FGJ_SEND_WAIT
    フラグ定数 "0"
    関連項目:
      - 定数フィールド値

  - ### FGJ_SEND_OVER

    protected static final String FGJ_SEND_OVER
    フラグ定数 "1"
    関連項目:
      - 定数フィールド値

  - ### FGJ_ADDR_ERR

    protected static final String FGJ_ADDR_ERR
    フラグ定数 "7"
    関連項目:
      - 定数フィールド値

  - ### FGJ_ACNT_ERR

    protected static final String FGJ_ACNT_ERR
    フラグ定数 "8"
    関連項目:
      - 定数フィールド値

  - ### DBID

    protected final String DBID
    リソース系DBID

  - ### APP_INFO

    protected static final ApplicationInfo APP_INFO
    アプリケーション情報

- ## コンストラクタの詳細

  - ### DefaultMailManager

    public 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 にあわせます)

  - ### 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

    protected 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 ) を利用するように修正します。

  - ### 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に変更します。

  - ### setAttachFiles

    protected void setAttachFiles(String attach1, String attach2, String attach3, String attach4, String attach5)
    添付ファイル配列をセットします。
    パラメータ:
      `attach1` - 添付ファイル名1
      `attach2` - 添付ファイル名2
      `attach3` - 添付ファイル名3
      `attach4` - 添付ファイル名4
      `attach5` - 添付ファイル名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

    protected ConcurrentMap<String,String[]> 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()
    アドレスチェックのエラーリストを返します。
    戻り値:
      エラーリスト