forked from Coded/SIPRP
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							236 lines
						
					
					
						
							5.5 KiB
						
					
					
				
			
		
		
	
	
							236 lines
						
					
					
						
							5.5 KiB
						
					
					
				/*
 | 
						|
 * ServletAux.java
 | 
						|
 *
 | 
						|
 * Created on 10 de Março de 2005, 12:24
 | 
						|
 */
 | 
						|
 | 
						|
package siprp.pagina;
 | 
						|
 | 
						|
import java.io.*;
 | 
						|
import java.util.*;
 | 
						|
 | 
						|
import javax.mail.*;
 | 
						|
import javax.mail.internet.*;
 | 
						|
import javax.servlet.*;
 | 
						|
import javax.servlet.http.*;
 | 
						|
import java.sql.*;
 | 
						|
 | 
						|
import org.apache.velocity.*;
 | 
						|
import org.apache.velocity.app.*;
 | 
						|
 | 
						|
import com.evolute.utils.arrays.*;
 | 
						|
/**
 | 
						|
 *
 | 
						|
 * @author  psantos
 | 
						|
 */
 | 
						|
public class MailerServlet extends HttpServlet
 | 
						|
	implements GlobalConstants
 | 
						|
{
 | 
						|
	public static final String EMAIL = "email";
 | 
						|
	public static final String EMAIL_MARCACAO = "email_marcacao";
 | 
						|
	public static final String EMAIL_RECRUTAMENTO = "email_recrutamento";
 | 
						|
	
 | 
						|
	protected static Hashtable PROPERTIES;
 | 
						|
	
 | 
						|
	public void init()
 | 
						|
	{
 | 
						|
 | 
						|
		try
 | 
						|
		{
 | 
						|
			String TEMPLATE_DIR = this.getServletContext().getRealPath( "/" ) + "html/";
 | 
						|
 | 
						|
			Properties props = new Properties();
 | 
						|
			props.setProperty( "file.resource.loader.path", TEMPLATE_DIR );
 | 
						|
			Velocity.init( props );
 | 
						|
			if( PROPERTIES == null )
 | 
						|
			{
 | 
						|
				Class.forName(bdDriver);
 | 
						|
				Connection con = DriverManager.getConnection( bdUrl, bdUsername, bdPassword );
 | 
						|
				Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
 | 
						|
				ResultSet2DArray array = new ResultSet2DArray( 
 | 
						|
					stmt.executeQuery( "Select name, value FROM properties;" ) );
 | 
						|
				PROPERTIES = new Hashtable();
 | 
						|
				for( int n = 0; n < array.columnLength(); n++ )
 | 
						|
				{
 | 
						|
					PROPERTIES.put( array.get( n, 0 ), array.get( n, 1 ) );
 | 
						|
				}
 | 
						|
				con.close();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		catch( Exception e )
 | 
						|
		{
 | 
						|
			e.printStackTrace();
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	protected String createContent( Hashtable parameters, String[] form_fields, String template )
 | 
						|
	{
 | 
						|
		VelocityContext context = new VelocityContext();
 | 
						|
		StringWriter output = new StringWriter();
 | 
						|
 | 
						|
		try
 | 
						|
		{
 | 
						|
			for( int i = 0; i < form_fields.length; i++ )
 | 
						|
			{
 | 
						|
				context.put( form_fields[ i ], parameters.get( form_fields[ i ] ) );
 | 
						|
			}
 | 
						|
 | 
						|
			Velocity.mergeTemplate( template, Velocity.ENCODING_DEFAULT, context, output );
 | 
						|
 | 
						|
			return output.toString();
 | 
						|
		}
 | 
						|
		catch( Exception e )
 | 
						|
		{
 | 
						|
			e.printStackTrace();
 | 
						|
		}
 | 
						|
 | 
						|
		return null;
 | 
						|
	}
 | 
						|
	
 | 
						|
	protected String showResultPage( boolean success, String success_template, String fail_template )
 | 
						|
	{
 | 
						|
		VelocityContext context = new VelocityContext();
 | 
						|
		StringWriter output = new StringWriter();
 | 
						|
		String template;
 | 
						|
		if( success )
 | 
						|
		{
 | 
						|
			template = success_template;
 | 
						|
		}
 | 
						|
		else
 | 
						|
		{
 | 
						|
			template = fail_template;
 | 
						|
		}
 | 
						|
		try
 | 
						|
		{
 | 
						|
			Velocity.mergeTemplate( template, Velocity.ENCODING_DEFAULT, context, output );
 | 
						|
			return output.toString();
 | 
						|
		}
 | 
						|
		catch( Exception e )
 | 
						|
		{
 | 
						|
			e.printStackTrace();
 | 
						|
		}
 | 
						|
 | 
						|
		return null;
 | 
						|
	}
 | 
						|
 | 
						|
	protected boolean sendMail( String from, String destination, String subject, String content, boolean html )
 | 
						|
	{
 | 
						|
		String smtp_server = "localhost";
 | 
						|
		String mailer = "Evolute Mailer";
 | 
						|
 | 
						|
		Properties props = System.getProperties();
 | 
						|
		props.put( "mail.smtp.host", smtp_server );
 | 
						|
 | 
						|
		String content_type = ( html ) ? "text/html" : "text/plain";
 | 
						|
		
 | 
						|
		Session session = Session.getInstance( props, null );
 | 
						|
		Message msg = new MimeMessage( session );
 | 
						|
		try
 | 
						|
		{
 | 
						|
			if( from != null )
 | 
						|
			{
 | 
						|
				msg.setFrom( new InternetAddress( from ) );
 | 
						|
			}
 | 
						|
			msg.setRecipients( Message.RecipientType.TO, InternetAddress.parse( destination, true ) );
 | 
						|
			msg.setSubject( subject );
 | 
						|
 | 
						|
			msg.setContent( content.toString(), content_type );
 | 
						|
 | 
						|
			msg.setHeader( "X-Mailer", mailer );
 | 
						|
			msg.setSentDate( new java.util.Date() );
 | 
						|
			Transport.send( msg );
 | 
						|
 | 
						|
			return true;
 | 
						|
		}
 | 
						|
		catch( Exception e )
 | 
						|
		{
 | 
						|
			e.printStackTrace();
 | 
						|
		}
 | 
						|
 | 
						|
		return false;
 | 
						|
	}
 | 
						|
	
 | 
						|
	protected boolean sendMail( String from, String destination, String subject, String content, boolean html,
 | 
						|
								String filename, byte attachment[] )
 | 
						|
	{
 | 
						|
		String smtp_server = "localhost";
 | 
						|
		String mailer = "Evolute Mailer";
 | 
						|
 | 
						|
		Properties props = System.getProperties();
 | 
						|
		props.put( "mail.smtp.host", smtp_server );
 | 
						|
 | 
						|
		String content_type = ( html ) ? "text/html" : "text/plain";
 | 
						|
		
 | 
						|
		Session session = Session.getInstance( props, null );
 | 
						|
		Message msg = new MimeMessage( session );
 | 
						|
		try
 | 
						|
		{
 | 
						|
			if( from != null )
 | 
						|
			{
 | 
						|
				msg.setFrom( new InternetAddress( from ) );
 | 
						|
			}
 | 
						|
			msg.setRecipients( Message.RecipientType.TO, InternetAddress.parse( destination, true ) );
 | 
						|
			msg.setSubject( subject );
 | 
						|
			msg.setHeader( "X-Mailer", mailer );
 | 
						|
			msg.setSentDate( new java.util.Date() );
 | 
						|
			
 | 
						|
			Multipart multipart = new MimeMultipart();
 | 
						|
			BodyPart messageBodyPart = new MimeBodyPart();
 | 
						|
			messageBodyPart.setContent( content.toString(), content_type );
 | 
						|
			multipart.addBodyPart(messageBodyPart);
 | 
						|
 | 
						|
			messageBodyPart = new MimeBodyPart();
 | 
						|
//			DataSource source = new ByteDataSource(attachment);
 | 
						|
//			messageBodyPart.setDataHandler(
 | 
						|
//			  new DataHandler(source));
 | 
						|
			messageBodyPart.setFileName(filename);
 | 
						|
			
 | 
						|
			multipart.addBodyPart(messageBodyPart);
 | 
						|
		    msg.setContent(multipart);
 | 
						|
			
 | 
						|
			Transport.send( msg );
 | 
						|
 | 
						|
			return true;
 | 
						|
		}
 | 
						|
		catch( Exception e )
 | 
						|
		{
 | 
						|
			e.printStackTrace();
 | 
						|
		}
 | 
						|
 | 
						|
		return false;
 | 
						|
	}
 | 
						|
 | 
						|
	private String checkParameter( String parameter )
 | 
						|
	{
 | 
						|
		if( parameter != null && parameter.trim().length() > 0 )
 | 
						|
		{
 | 
						|
			return parameter.trim();
 | 
						|
		}
 | 
						|
 | 
						|
		return null;
 | 
						|
	}
 | 
						|
 | 
						|
	protected Hashtable parseParameters( Hashtable parameters )
 | 
						|
	{
 | 
						|
		Hashtable tmp = new Hashtable();
 | 
						|
		String[] element;
 | 
						|
		String key;
 | 
						|
		String new_element;
 | 
						|
		for( Enumeration e = parameters.keys(); e.hasMoreElements(); )
 | 
						|
		{
 | 
						|
			key = ( String ) e.nextElement();
 | 
						|
			element = ( String[] ) parameters.get( key );
 | 
						|
			if( element != null )
 | 
						|
			{
 | 
						|
				new_element = checkParameter( element[ 0 ] );
 | 
						|
				if( new_element != null )
 | 
						|
				{
 | 
						|
					tmp.put( key, new_element );
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		return tmp;
 | 
						|
	}
 | 
						|
}
 |