logotipo de el mundo de deckerix
El mundo de deckerix
mascotas
El mundo de deckerix. [x]
logotipo de el mundo de deckerix

El mundo de Deckerix 0.4


by Oscar Carrascosa Blanco


Deprecated: Function split() is deprecated in /homepages/43/d272195232/htdocs/src/utiles/Fecha.php on line 65

Deprecated: Function split() is deprecated in /homepages/43/d272195232/htdocs/src/utiles/Fecha.php on line 66
Septiembre 14 2008 13:46:41

Subir y enviar ficheros por mail (Java). by deckerix

Es un requerimiento bastante común realizar un formulario web para enviar mails con adjuntos a otras personas. El api que proporciona Java para el envio de emails no es muy complicado pero aún así es un poco tedioso empezar con él. He creado un wrapper del api de envio de mail de java para que este proceso nos resulte mucho más fácil.

El wrapper permite:

/*Indicar el host que nos hará de relay del correo*/
gestorMail.setHost("192.168.200.239");

/*Establecer el campo FROM*/
gestorMail.setFrom(valorCampo);

/*Mandar un correo a varias personas*/
String paras[] =  valorCampo.split(","); //puede mandarse el emal a varias direcciones
for (int k=0; k < paras.length ; k++){
   	gestorMail.addToAddress(paras[k],paras[k]);    //añadimos la direccion
}

/*Establecer un asunto y un mensaje*/
gestorMail.setAsunto(valorCampo);
gestorMail.setMensaje(valorCampo);

/*Adjuntar ficheros*/
File fichero1 = new File("C:\\temp\\emails\\"+nombreFichero);
gestorMail.attach(fichero1);
gestorMail.attach(fichero2);

/*Controlar el envio*/
int control=gestorMail.enviarMail();

El proceso de upload de ficheros no es muy intuitivo si no se ha visto nunca. Os presento aquí el código necesario para realizar un upload de ficheros en jsp.

    boolean isMultipart = FileUpload.isMultipartContent(request);
    List parametrosMultiPart = null;
    DiskFileUpload upload = new DiskFileUpload();
    parametrosMultiPart = upload.parseRequest(request);

    Iterator itr = parametrosMultiPart.iterator();
    Hashtable tablaParametros = new Hashtable();
    File ficheroAdjunto =null;
     
     while (itr.hasNext()) {
           FileItem item = (DefaultFileItem) itr.next();
     
     	
            if (item.isFormField()) {  // Buscamos campos de formulario tipo textarea, input.
                   
                        String nombreCampo = item.getFieldName(); // obtenemos el nombre del campo y su valor
                        String valorCampo  = item.getString();
    
                         if (nombreCampo!= null && nombreCampo.equals("de")){
                        
                        		gestorMail.setFrom(valorCampo);
                        
                         }else
                         if (nombreCampo!= null && nombreCampo.equals("para")){
    
                             String paras[] =  valorCampo.split(","); //puede mandarse el emal a varias direcciones
                             					  //separadas por comas
    			 for (int k=0; k < paras.length ; k++){
                              	gestorMail.addToAddress(paras[k],paras[k]);    //añadimos la direccion
                             }
                         }else
                         if (nombreCampo!= null && nombreCampo.equals("asunto")){
                           gestorMail.setAsunto(valorCampo);
                         }else
                         if (nombreCampo!= null && nombreCampo.equals("mensaje")){
                            gestorMail.setMensaje(valorCampo);
                         }
            } else {//case file
                  //Objeto que guardara el fichero para ser utilizado más adelante
         
                    cajonNombres.add(item.getName());
    	        if( item.getName()!=null && !item.getName().equals("") ) {
    		    String nombreFichero = item.getName().substring(item.getName().lastIndexOf("\\")+1);
                        File fichero = new File("C:\\temp\\emails\\"+nombreFichero);
    	            item.write(fichero);
                	    gestorMail.attach(fichero);
            	}
           }
    }//fin while
    

El código entero (tanto el upload de ficheros como el wrapper de la api de java) os lo podéis descargar de aquí.

Nombre * (obligatorio)

Email

Web

El mundo de Deckerix es una creación de Óscar Carrascosa Blanco.

deckerix@gmail.com