MailHome home = (MailHome)CVUtility.getHomeObject("com.centraview.mail.MailHome", "Mail");
Mail remote = home.create();
remote.setDataSource(dataSource);
// create a MailMessageVO
MailMessageVO messageVO = new MailMessageVO();
String from = (String)emailForm.get("from");
messageVO.setFromAddress(from);
String replyTo = (String)emailForm.get("replyTo");
messageVO.setReplyTo(replyTo);
String subject = (String)emailForm.get("subject");
if (subject == null || subject.equals("")) {
messageVO.setSubject("[No Subject] ");
} else {
messageVO.setSubject(subject);
}
String body = (String)emailForm.get("body");
if (body == null) {
body = "";
}
messageVO.setBody(body);
Boolean composeInHTML = (Boolean)emailForm.get("composeInHTML");
if (composeInHTML.booleanValue()) {
messageVO.setContentType(MailMessageVO.HTML_TEXT_TYPE);
} else {
messageVO.setContentType(MailMessageVO.PLAIN_TEXT_TYPE);
}
ArrayList toList = this.parseAddresses((String)emailForm.get("to"));
if (toList.size() <= 0) {
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"error.general.requiredField", "To:"));
} else {
messageVO.setToList(toList);
}
ArrayList ccList = this.parseAddresses((String)emailForm.get("cc"));
messageVO.setCcList(ccList);
ArrayList bccList = this.parseAddresses((String)emailForm.get("bcc"));
messageVO.setBccList(bccList);
// TODO: figure out what headers to set when sending mail
messageVO.setHeaders("");
messageVO.setReceivedDate(new java.util.Date());
// Handle attachments - the attachment handler puts a ArrayList
// This ArrayList contains the list of attached fileIDs.
// So we'll get that ArrayList, iterate through it, creating a
// CvFileVO object for each attachment, then add that file VO
// to the messageVO object which will take care of the rest in
// the EJB layer. Note that in the future, we'll want to make
// this better by not saving the attachment list on the session.
// So if you intend to modify this code, please consult the rest
// of the team to see if it makes sense to make that change now.
// Also, if you make a change here, you must make sure the
// attachment handling code in ForwardHandler reflects your changes.
if (attachmentFileIDs != null && attachmentFileIDs.size() > 0) {
CvFileFacade fileRemote = new CvFileFacade();
for (int i = 0; i < attachmentFileIDs.size(); i++) {
int fileID = ((Integer)attachmentFileIDs.get(i)).intValue();
// get the CvFileVO from the EJB layer
CvFileVO fileVO = fileRemote.getFile(individualID, fileID, dataSource);
if (fileVO != null) {
// add this attachment to the messageVO
messageVO.addAttachedFiles(fileVO);
}
} // end while (attachIter.hasNext())
} // end if (attachmentMap != null && attachmentMap.size() > 0)
if (!allErrors.isEmpty()) {