// no point in continuing forward. Show user the door. :-)
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.general.requiredField", "Account ID"));
return mapping.findForward(forward);
}
Mail remote = (Mail)home.create();
remote.setDataSource(dataSource);
MailAccountVO accountVO = remote.getMailAccountVO(accountID.intValue());
// account name - required
String accountName = (String)accountForm.get("accountName");
if (accountName == null || accountName.length() <= 0) {
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.general.requiredField", "Account Name"));
}
accountVO.setAccountName(accountName);
// email address - must be a valid InternetAddress
String emailAddress = (String)accountForm.get("emailAddress");
if (emailAddress == null) {
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.general.requiredField", "Email Address"));
} else if (! CVUtility.isEmailAddressValid(emailAddress)) {
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.email.invalidAddress", emailAddress));
}
accountVO.setEmailAddress(emailAddress);
// leave on server - false by default
Boolean leaveOnServerForm = (Boolean)accountForm.get("leaveOnServer");
boolean leaveOnServer = false;
if (leaveOnServerForm != null && leaveOnServerForm.booleanValue() == true) {
leaveOnServer = true;
}
accountVO.setLeaveMessagesOnServer(leaveOnServer);
// user name - required
String username = (String)accountForm.get("username");
if (username == null || username.length() <= 0) {
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.general.requiredField", "User Name (login)"));
}
accountVO.setLogin(username);
// password - required
String password = (String)accountForm.get("password");
if (password == null || password.length() <= 0) {
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.general.requiredField", "Password"));
}
accountVO.setPassword(password);
// mail server (POP3 or IMAP) - required
String mailServer = (String)accountForm.get("mailServer");
if (mailServer == null || mailServer.length() <= 0) {
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.general.requiredField", "Mail Server Address"));
}
accountVO.setMailServer(mailServer);
// reply to - optional
String replyTo = (String)accountForm.get("replyTo");
accountVO.setReplyToAddress(replyTo);
// signature - optional
String signature = (String)accountForm.get("signature");
accountVO.setSignature(signature);
// port - required, must be valid Integer
Integer smtpPort = (Integer)accountForm.get("port");
if (smtpPort == null || smtpPort.intValue() <= 0) {
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.general.requiredField", "SMTP Port"));
}
accountVO.setSmtpPort(smtpPort.intValue());
// smtp server - required
String smtpServer = (String)accountForm.get("smtpServer");
if (smtpServer == null || smtpServer.length() <= 0) {
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.general.requiredField", "SMTP Server"));
}
accountVO.setSmtpServer(smtpServer);
accountVO.setAuthenticationRequiredForSMTP(false); // set false by default
Boolean authenticationRequiredForSMTP = (Boolean)accountForm.get("authenticationRequiredForSMTP");
if (authenticationRequiredForSMTP != null) {
if (authenticationRequiredForSMTP.booleanValue()) {
accountVO.setAuthenticationRequiredForSMTP(true);
}
}
if (! allErrors.isEmpty()) {
saveErrors(request, allErrors);
return mapping.findForward(forward);
}
try {
remote.updateEmailAccount(accountVO);
} catch (MessagingException me) {
String errorMessage = me.getMessage();
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.freeForm", "Error while updating email account, "+errorMessage));
saveErrors(request, allErrors);
return mapping.findForward(errorForward);