All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nablarch.common.mail.MailContext Maven / Gradle / Ivy

The newest version!
package nablarch.common.mail;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

import nablarch.core.util.annotation.Published;

/**
 * メール送信要求を表す抽象クラス。
 * 

* 以下の項目は、指定しない場合デフォルト値が使用される。 *
    *
  • 返信先メールアドレス:{@link MailRequestConfig#defaultReturnPath}の設定値
  • *
  • 差し戻し先メールアドレス:{@link MailRequestConfig#defaultReplyTo}の設定値
  • *
  • Content-Typeヘッダに指定する文字セット:{@link MailRequestConfig#defaultCharset}の設定値
  • *
* * @author Shinsuke Yoshio */ public abstract class MailContext { /** 送信元メールアドレス */ private String from; /** 送信先(TO)メールアドレスのリスト */ private final Set toList = new LinkedHashSet(); /** 送信先(CC)メールアドレスのリスト */ private final Set ccList = new LinkedHashSet(); /** 送信先 (BCC)メールアドレスのリスト */ private final Set bccList = new LinkedHashSet(); /** 差し戻し先メールアドレス(Return-Path) */ private String returnPath; /** 返信先メールアドレス(Reply-To) */ private String replyTo; /** 件名 */ private String subject; /** 本文 */ private String mailBody; /** 文字コード */ private String charset; /** 添付ファイルのリスト */ private final List attachedFileList = new ArrayList(); /** メール送信パターンID */ private String mailSendPatternId; /** * メール送信要求をバリデーションする。
* バリデーション内容は以下の2つ。下記以外は業務アプリにてバリデーション済みの前提。
*
    *
  • 宛先の数が0でないか、もしくは上限値を超えていないか。
  • *
  • 添付ファイルのファイルサイズが上限値を超えていないか。
  • *
* * @param mailRequestConfig * メールのデフォルト設定 */ public void validate(MailRequestConfig mailRequestConfig) { // 宛先数チェック int maxRecipientCount = mailRequestConfig.getMaxRecipientCount(); int actualRecipientCount = toList.size() + ccList.size() + bccList.size(); if (actualRecipientCount > maxRecipientCount || actualRecipientCount == 0) { throw new RecipientCountException(maxRecipientCount, actualRecipientCount); } // ファイルサイズ上限チェック long maxAttachedFileSize = mailRequestConfig.getMaxAttachedFileSize(); long sumFileSize = 0; for (AttachedFile attachedFile : attachedFileList) { sumFileSize = sumFileSize + attachedFile.getFile().length(); } if (sumFileSize > maxAttachedFileSize) { throw new AttachedFileSizeOverException(maxAttachedFileSize, sumFileSize); } } /** * 送信元メールアドレスを取得する。 * * @return 送信元メールアドレス */ @Published(tag = "architect") public String getFrom() { return from; } /** * 送信元メールアドレスを設定する。 * * @param from * 送信元メールアドレス */ @Published public void setFrom(String from) { this.from = from; } /** * 送信先(TO)メールアドレスのリストを取得する。 * * @return 送信先(TO)メールアドレスのリスト */ @Published(tag = "architect") public Set getToList() { return toList; } /** * 送信先(TO)メールアドレスを追加する。 * * @param to * 送信先(TO)メールアドレス */ @Published public void addTo(String to) { this.toList.add(to); } /** * 送信先(CC)メールアドレスのリストを取得する。 * * @return 送信先(CC)メールアドレスのリスト */ @Published(tag = "architect") public Set getCcList() { return ccList; } /** * 送信先(CC)メールアドレスを追加する。 * * @param cc * 送信先(CC)メールアドレス */ @Published public void addCc(String cc) { this.ccList.add(cc); } /** * 送信先(BCC)メールアドレスのリストを取得する。 * * @return 送信先(BCC)メールアドレス */ @Published(tag = "architect") public Set getBccList() { return bccList; } /** * 送信先(BCC)メールアドレスを追加する。 * * @param bcc * 送信先(BCC)メールアドレス */ @Published public void addBcc(String bcc) { this.bccList.add(bcc); } /** * 差し戻し先メールアドレスを取得する。 * * @return 差し戻し先メールアドレス */ @Published(tag = "architect") public String getReturnPath() { return returnPath; } /** * 差し戻し先メールアドレスを設定する。 * * @param returnPath 差し戻し先メールアドレス */ @Published public void setReturnPath(String returnPath) { this.returnPath = returnPath; } /** * 返信先メールアドレスを取得する。 * * @return 返信先メールアドレス */ @Published(tag = "architect") public String getReplyTo() { return replyTo; } /** * 返信先メールアドレスを設定する。 * * @param replyTo 返信先メールアドレス */ @Published public void setReplyTo(String replyTo) { this.replyTo = replyTo; } /** * 件名を取得する。 * * @return 件名 */ @Published(tag = "architect") protected String getSubject() { return subject; } /** * 件名を設定する。 * * @param subject 件名 */ @Published protected void setSubject(String subject) { this.subject = subject; } /** * 本文を取得する。 * * @return 本文 */ @Published(tag = "architect") protected String getMailBody() { return mailBody; } /** * 本文を設定する。 * * @param mailBody 本文 */ @Published protected void setMailBody(String mailBody) { this.mailBody = mailBody; } /** * Content-Typeヘッダに指定する文字セットを取得する。 * * @return Content-Typeヘッダに指定する文字セット */ @Published(tag = "architect") protected String getCharset() { return charset; } /** * Content-Typeヘッダに指定する文字セットを設定する。 * * @param charset Content-Typeヘッダに指定する文字セット */ @Published protected void setCharset(String charset) { this.charset = charset; } /** * 添付ファイルのリストを取得する。 * * @return 添付ファイルのリスト */ @Published(tag = "architect") public List getAttachedFileList() { return attachedFileList; } /** * 添付ファイルを追加する。 * * @param attachedFile 添付ファイル */ @Published public void addAttachedFile(AttachedFile attachedFile) { this.attachedFileList.add(attachedFile); } /** * メール送信パターンIDを取得する。 * * @return メール送信パターンID */ @Published(tag = "architect") public String getMailSendPatternId() { return mailSendPatternId; } /** * メール送信パターンIDを設定する。 *

* メール送信パターンIDを指定して未送信データを送信する場合は必須。 * * @param mailSendPatternId メール送信パターンID */ @Published public void setMailSendPatternId(String mailSendPatternId) { this.mailSendPatternId = mailSendPatternId; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy