クラス DefaultMailManager
java.lang.Object
org.opengion.hayabusa.mail.DefaultMailManager
- 直系の既知のサブクラス:
MailManager_DB
,MailManager_DIRECT
,MailSendHistory
タグ mailSender2 及びバッチによる送信の共通処理部分を実装しています。
送信タグ mailSender2 もしくは送信デーモンからパラメータを受取ります。
パラメータ中の定型文ID及びシステムIDで定型文マスタよりメールの定型文を取得して、
パラメータ値とマージしてメール文を合成します。同時に、宛先にセットした社員ID、
グループIDと定型文の宛先設定に基づき、社員マスタとグループマスタよりメールアドレス
情報を取得して送信を行います。
エラーがなければ送信した内容を履歴テーブル、宛先テーブルに書き込みます。
最後に本処理の呼出元に送信結果、エラーメッセージを返します。
- 機能分類
- メールモジュール
- 導入されたバージョン:
- JDK1.6
-
フィールドの概要
フィールド修飾子とタイプフィールド説明protected static final ApplicationInfo
アプリケーション情報protected final String
リソース系DBIDprotected 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
create
(ConcurrentMap<String, String> params) 呼出元よりパラメータマップを受取って、メールオブジェクト(mailObj)を作成します。メール本文を返します。アドレスチェックのエラーリストを返します。メール送信者アドレスを返します。protected ConcurrentMap
<String, String[]> メール宛先マップをセットします。getTitle()
メールタイトルを返します。void
send()
メール送信を行うメソッドです。protected void
setAttachFiles
(String... attachs) 添付ファイル配列をセットします(最大5個まで)。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
メール送信ホストをセットします。protected void
setInitParams
(ConcurrentMap<String, String> params) パラメータマップをセットします。protected void
setMailDstMap
(ConcurrentMap<String, String[]> mailDst) メール宛先マップをセットします。void
メール送信ポート番号をセットします。void
メールタイトルをセットします。void
setUseTLS
(boolean flg) メール送信にSTARTTLSを利用するかのフラグをセットします。protected String
指定の長さ以内の文字列を返します。
-
フィールド詳細
-
FGJ_SEND_WAIT
GE34(宛先テーブル) FGJ 送信待 "0"- 関連項目:
-
FGJ_SEND_OVER
GE34(宛先テーブル) FGJ 送信済 "1"- 関連項目:
-
FGJ_ADDR_ERR
GE34(宛先テーブル) FGJ アドレス取得エラー "7"- 関連項目:
-
FGJ_ACNT_ERR
GE34(宛先テーブル) FGJ メールアカウントエラー "8"- 関連項目:
-
initParamMap
8.5.7.0 (2024/03/29) サブクラスからアクセスできるように、protected に変更 -
DBID
リソース系DBID -
APP_INFO
アプリケーション情報
-
-
コンストラクタの詳細
-
DefaultMailManager
public DefaultMailManager()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
create
呼出元よりパラメータマップを受取って、メールオブジェクト(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
メール送信を行うメソッドです。 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
デバッグ情報の表示を行うかどうか[true/false]をセットします。- パラメータ:
debug
- [true:出力する/それ以外:しない]
-
setFromAddr
メール送信者アドレスをセットします。- パラメータ:
from
- 送信者アドレス
-
setTitle
メールタイトルをセットします。- パラメータ:
title
- メールタイトル
-
setContent
メール本文をセットします。- パラメータ:
content
- メール本文
-
setHost
メール送信ホストをセットします。 初期値は、システム定数のCOMMON_MAIL_SERVER を使用します。 (初期値:システム定数のCOMMON_MAIL_SERVER[=])。- パラメータ:
hostName
- 送信ホスト- 変更履歴:
- 5.6.6.0 (2013/07/05)
-
setPort
メール送信ポート番号をセットします。 初期値は、システム定数のSMTP_PORT を使用します。 (初期値:システム定数のSMTP_PORT[=])。- パラメータ:
port
- SMTPポート- 変更履歴:
- 5.6.6.0 (2013/07/05)
-
setAuthType
メール送信時認証有無をセットします。 認証を行う場合は「POP_BEFORE_SMTP」と指定して下さい。 認証時には認証ユーザと認証パスワードを設定する必要があります。 初期値は、システム定数のMAIL_SEND_AUTH を使用します。 (初期値:システム定数のMAIL_SEND_AUTH[=])。- パラメータ:
type
- 認証方式- 変更履歴:
- 6.0.3.0 (2014/11/13) Ver6用キーワード変更
-
setAuthUser
メール送信認証ユーザをセットします。 初期値は、システム定数のMAIL_SEND_AUTH_USER を使用します。 (初期値:システム定数のMAIL_SEND_AUTH_USER[=])。- パラメータ:
user
- 認証ユーザ- 変更履歴:
- 5.6.6.0 (2013/07/05)
-
setAuthPass
メール送信認証パスワードをセットします。 初期値は、システム定数のMAIL_SEND_AUTH_PASSWORD を使用します。 (初期値:システム定数のMAIL_SEND_AUTH_PASSWORD[=])。- パラメータ:
pass
- 認証パスワード- 変更履歴:
- 5.6.6.0 (2013/07/05)
-
setUseTLS
メール送信にSTARTTLSを利用するかのフラグをセットします。 初期値は、システム定数のMAIL_SEND_USE_STARTTLS を使用します。 (初期値:システム定数のMAIL_SEND_AUTH_PASSWORD[=])。- パラメータ:
flg
- TLSの利用有無- 変更履歴:
- 5.9.29.2 (2018/02/16) STARTTLS対応(キーワードをVer5 にあわせます)
-
getFromAddr
メール送信者アドレスを返します。- 戻り値:
- 送信者アドレス
-
getTitle
メールタイトルを返します。- 戻り値:
- メールタイトル
-
getContent
メール本文を返します。- 戻り値:
- メール本文
-
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
パラメータマップをセットします。- パラメータ:
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
添付ファイル配列をセットします(最大5個まで)。- パラメータ:
attachs
- 添付ファイルの可変長配列(ただし、最大5個まで)
-
setMailDstMap
メール宛先マップをセットします。- パラメータ:
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
指定の長さ以内の文字列を返します。- パラメータ:
src
- オリジナルの文字列maxLen
- 指定の長さ- 戻り値:
- 指定の長さに短縮された文字列
- 変更履歴:
- 5.9.1.3 (2015/10/30) 文字数ではなくByte数に変更
-
getErrList
アドレスチェックのエラーリストを返します。- 戻り値:
- エラーリスト
-