Mega Code Archive

 
Categories / Java / Velocity
 

Use Velocity to generate HTML based email

import java.io.StringWriter; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.VelocityEngine; public class EmailDemo {     public static void main( String[] args )         throws Exception     {         /*          *   first, get and initialize an engine          */         VelocityEngine ve = new VelocityEngine();         ve.init();         /*          *   organize our data           */         ArrayList list = new ArrayList();         Map map = new HashMap();         map.put("name", "Cow");         map.put("price", "$100.00");         list.add( map );           map = new HashMap();         map.put("name", "Eagle");         map.put("price", "$59.99");         list.add( map );         map = new HashMap();         map.put("name", "Shark");         map.put("price", "$3.99");         list.add( map );         /*          *  add that list to a VelocityContext          */         VelocityContext context = new VelocityContext();         context.put("petList", list);         /*          *   get the Template            */         Template t = ve.getTemplate( "./src/email_html.vm" );         /*          *  now render the template into a Writer, here           *  a StringWriter           */         StringWriter writer = new StringWriter();         t.merge( context, writer );         /*          *  use the output in the body of your emails          */         System.out.println( writer.toString() );     } } -------------------------------------------------------------------------------------   <HTML>     <HEAD>       <TITLE>Pet Store Sale!</TITLE>     </HEAD>     <BODY>       <CENTER>       <B>$petList.size() Pets on Sale!</B>              <BR/>       This is an email generated by velocity       <BR/>       This month only, choose from :            #set( $count = 1 )         <TABLE>         #foreach( $pet in $petList )           <TR>             <TD>$count)</TD>             <TD>$pet.name</TD>             <TD>$pet.price</TD>           </TR>           #set( $count = $count + 1 )         #end       </TABLE>             <I>Call Today!</I>      Bests <br>      www.rntsoft.com       </CENTER>       </BODY>   </HTML>                     velocity-HTML-Based-Email.zip( 2,191 k)