package railo.runtime.tag; import javax.servlet.jsp.tagext.Tag; import railo.runtime.exp.ApplicationException; import railo.runtime.exp.PageException; import railo.runtime.ext.tag.BodyTagImpl; /** * Specifies one part of a multipart e-mail message. Can only be used in the cfmail tag. * You can use more than one cfmailpart tag within a cfmail tag * * * **/ public final class MailPart extends BodyTagImpl { railo.runtime.net.mail.MailPart part=new railo.runtime.net.mail.MailPart(); @Override public void release() { super.release(); part=new railo.runtime.net.mail.MailPart(); } /** * @param type The type to set. * @throws ApplicationException */ public void setType(String type) throws ApplicationException { part.setType(type); } /** * @param charset The charset to set. */ public void setCharset(String charset) { part.setCharset(charset); } /** * @param wraptext The wraptext to set. */ public void setWraptext(double wraptext) { part.setWraptext((int)wraptext); } @Override public int doStartTag() { return EVAL_BODY_BUFFERED; } @Override public void doInitBody() { } @Override public int doAfterBody() { part.setBody(bodyContent.getString()); return SKIP_BODY; } @Override public int doEndTag() throws PageException { getMail().addPart(part); /*String type = part.getType(); if(StringUtil.isEmpty(part.getCharset())) part.setCharset(mail.getCharset()); if(type!=null && (type.equals("text/plain") || type.equals("plain") || type.equals("text"))){ part.isPlain(true); mail.setBodyPart(part); } else if(type!=null && (type.equals("text/html") || type.equals("html") || type.equals("htm"))){ part.isHTML(true); mail.setBodyPart(part); } else { getMail().setParam(type, null, "susi", part.getBody(), "inline", null); }*/ // throw new ApplicationException("attribute type of tag mailpart has an invalid values","valid values are [plain,text,html] but value is now ["+type+"]"); return EVAL_PAGE; } private Mail getMail() throws ApplicationException { Tag parent=getParent(); while(parent!=null && !(parent instanceof Mail)) { parent=parent.getParent(); } if(parent instanceof Mail)return (Mail) parent; throw new ApplicationException("Wrong Context, tag MailPart must be inside a Mail tag"); } }