クラス 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
  • フィールド詳細

  • コンストラクタの詳細

    • 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

      メール宛先マップをセットします。
      戻り値:
      メール宛先マップ
      変更履歴:
      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()
      アドレスチェックのエラーリストを返します。
      戻り値:
      エラーリスト