import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public class TemplateService { /** * R. Al-Rawi, CARET, Cambridge UK. * 16-Mar-2007 */ public static void main(String[] args) { String emailTemplate = "Welcome to {systemServiceName}\n\nYou have been registered as a member of the {siteTitle} worksite on {systemServiceName} by {registrarName}.\nYou need to complete the registration process by following the link:\n\n{guestRegUrl}\n\nand providing the required details.\n\nOnce registration is complete you can log into {systemServiceName} by going to:\n\n{systemUrl}\n\nand using the user ID: {userEid} and the password you entered when completing registration.\nYou can maintain your account (user details and password) at:\n\n{guestAccountUrl}\n\nYou may find it useful to add the site to your browser favourites.\nIf you have any problems or questions, email {systemServiceName} support: {supportEmail}\n\nRegards\n\nSystem Administrator\n{systemServiceName}"; String emailSubjectTemplate = "You are a member of {siteTitle} on {systemServiceName}"; String fromAddress = "admin@sakaiproject.org"; String userEmail = "user@sakaiproject.org"; String userEid = "u123"; String userPassword = "zMd9saqW"; String registrarName = "Site Maintainer"; String registrarEmail = "maintainer@sakaiproject.org"; String siteTitle = "Test Worksite"; String systemServiceName = "Sakai"; String systemInstitution = "The Sakai Foundation"; String systemUrl = "www.sakaiproject.org"; String guestAccountUrl = "www.sakaiproject.org/guestaccounts"; String guestRegUrl = "www.sakaiproject.org/guestaccounts/registration"; String userAccountUrl = "www.sakaiproject.org/myaccount"; String supportEmail = "helpdesk@sakaiproject.org"; // Template parameters Map templateArgsMap = new HashMap(); templateArgsMap.put("fromAddress", fromAddress); // from email templateArgsMap.put("userEmail", userEmail); // user's email templateArgsMap.put("userEid", userEid); // user's EID templateArgsMap.put("userPassword", userPassword); // new random generated password templateArgsMap.put("registrarName", registrarName); // registering user's display name templateArgsMap.put("registrarEmail", registrarEmail); // registering user's email templateArgsMap.put("siteTitle", siteTitle); // title of site added to templateArgsMap.put("systemServiceName", systemServiceName); // system name templateArgsMap.put("systemInstitution", systemInstitution); // institution name templateArgsMap.put("systemUrl", systemUrl); // system url templateArgsMap.put("guestAccountUrl", guestAccountUrl); // guest account maintenance url templateArgsMap.put("guestRegUrl", guestRegUrl); // url to complete new user reg templateArgsMap.put("userAccountUrl", userAccountUrl); // account maintenance url templateArgsMap.put("supportEmail", supportEmail); // system support email address String message_subject = templateProcess(emailSubjectTemplate, templateArgsMap); String message_content = templateProcess(emailTemplate, templateArgsMap); System.out.println(message_subject); System.out.println(message_content); } public static String templateProcess(String template, Map templateArgs) { Pattern p = Pattern.compile("\\{([^\\}]*)\\}"); Matcher m = p.matcher(template); StringBuffer sb = new StringBuffer(); while (m.find()) { if (templateArgs.get(m.group(1)) != null) { m.appendReplacement(sb, templateArgs.get(m.group(1)).toString()); } } m.appendTail(sb); return sb.toString(); } }