/* ERMailFileAttachment.java - Camille Troillard - tuscland@mac.com */ package er.javamail; import java.io.File; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.BodyPart; import javax.mail.MessagingException; import javax.mail.internet.MimeBodyPart; public class ERMailFileAttachment extends ERMailAttachment { protected String _fileName; protected String _contentID; protected ERMailFileAttachment(Object content) { super(content); } public ERMailFileAttachment(String fileName, String id, File content) { super(content); _fileName = fileName; _contentID = id; } /** * <span class="ja"> * ファイル名を取得します。 * 設定されていなければ、"attachement.txt" が戻ります。 * * @return ファイル名 * </span> */ public String fileName() { if (_fileName == null) _fileName = "attachement.txt"; return _fileName; } /** * <span class="ja"> * ファイル名をセットします。 * * @param name - ファイル名 * </span> */ public void setFileName(String name) { _fileName = name; } /** * <span class="ja"> * コンテント ID を取得します。 * * @return コンテント ID * </span> */ public String contentID() { return _contentID; } /** * <span class="ja"> * コンテント ID をセットします。 * * @param id - コンテント ID * </span> */ public void setContentID(String id) { _contentID = id; } @Override protected BodyPart getBodyPart() throws MessagingException { MimeBodyPart bp = new MimeBodyPart(); DataSource ds = new FileDataSource((File) content()); bp.setDataHandler(new DataHandler(ds)); if (contentID() != null) bp.setHeader("Content-ID", contentID()); bp.setFileName(fileName()); return bp; } }