Come promesso:
	Codice PHP:
	
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.io.*;
/**
 *
 * 
Title: SendEMail</p>
 * 
Description: Classe utilizzata per inviare una e-mail</p>
 * 
Copyright: Copyright (c) 2003</p>
 * 
Company: </p>
 * @author: 
 * @version 1.0
 */
public class SendEMail {
  /**
   * Oggetto properties tramite cui settare la sessione
   */
  private Properties pro;
  /**
   * Oggetto sessione
   */
  private Session sessione;
  /**
   * Oggetto messaggio
   */
  private Message messaggio;
  /**
   * Indirizzo e-mail mittente
   */
  private InternetAddress da;
  /**
   * Indirizzi e-mail destinatari
   */
  private InternetAddress[] a;
  /**
   * Costruttore della classe che setta, nelle properties, l'smtp utilizzato
   * @param po -l'smtp utilizzato per inviare il messaggio
   */
  public SendEMail( String po ) {
    pro = System.getProperties();
    pro.put( "mail.smtp.host", po );
  }
  /**
   * Metodo che si occupa di settare la sessione
   */
  private void setSessione(){
    sessione = Session.getDefaultInstance( pro );
  }
  /**
   * Metodo che si occupa di settare, inizializzare il messaggio e di inviarlo
   * @param daChi -mittente
   * @param aChi  -destinatari
   * @param oggetto -oggetto e-mail
   * @param testoMessaggio -testo dell'email
   * @param autoritation -true se bisogna autorizzarsi, false altrimenti
   * @throws AddressException eccezione che si può verificare se l'indirizzo e-mail
   *                          dovesse essere non corretto
   * @throws MessagingException eventuale altra eccezione
   */
  public void sendMessaggio( String daChi, String aChi, String oggetto, String testoMessaggio, boolean autoritation ){
    try{
      setSessione();
      String host = pro.getProperty( "mail.smtp.host" );
      System.out.println( "["+host+"]" );
      Transport t = sessione.getTransport( "smtp" );
      messaggio = new MimeMessage(sessione);
      da = new InternetAddress(daChi);
      a = InternetAddress.parse(aChi);
      messaggio.setFrom(da);
      messaggio.setRecipients(Message.RecipientType.TO, a);
      messaggio.setSubject(oggetto);
      messaggio.setSentDate(new Date());
      messaggio.setText(testoMessaggio);
      //messaggio.setDataHandler(this.allegato);
      if( autoritation ){
        String log = "franco.marmotta";
        String psw = "franco123";
        t.connect( host, log, psw );
      }else{
        t.connect();
      }
      t.send( messaggio );
      t.close();
    }catch( AddressException ae ){
      ae.printStackTrace();
    }catch( MessagingException me ){
      me.printStackTrace();
    }
  }
  public static void main( String[] args ){
    SendEMail se = new SendEMail( "mail.191.it" );
    se.sendMessaggio( "prova@tin.it", "prova@tin.it", "ciao", "prova",  false );
    //se.sendMessaggio( "kjhj@prova.it", "prova@tin.it", "ola", "ollllalala", false );
  } 
 
Non so se ti può servire cmq ti posto anche la ricezione:
	Codice PHP:
	
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
/**
 *
 * 
Title: ReceiveEMail</p>
 * 
Description: Classe che si occupa della ricezione di EMail
 * </p>
 * 
Copyright: Copyright (c) 2003</p>
 * 
Company: </p>
 * @author:
 * @version 1.0
 */
public class ReceiveEMail {
  /**
   * Oggetto Store
   */
  private Store conserva;
  /**
   * Oggetto properties
   */
  private Properties prop;
  /**
   * Oggetto Sessione
   */
  private Session sessione;
  /**
   * Oggetto Folder simile
   * alla casella di posta elettronica
   */
  private Folder folder;
  /**
   * Oggetto messaggio
   */
  private Message messaggio;
  /**
   * Array di messaggi contenuti in quel folder
   */
  private Message[] elencoMessaggio;
  /**
   * Indirizzo mittente
   */
  private InternetAddress daChi;
  /**
   * Indirizzo destinatario
   */
  private InternetAddress aChi;
  /**
   * Oggetto stringa
   * contenete l'indirizzo
   * del mittente
   */
  private String da;
  /**
   * Costruttore della classe
   */
  public ReceiveEMail(  ) {
    prop     = System.getProperties();
    sessione = Session.getDefaultInstance( prop, null );
  }
  /**
   * Metodo che si occupa di settare lo Sotre in base a:
   *     1) tipo di protocollo ( Se POP3 o IMAP )
   *     2) l'host cui connettersi
   *     3) l'username
   *     4) la password
   * @param provider -specifica se s i usa POP3 oppure IMAP o qualsiasi altro
   * @param host -l'host cui connettersi
   * @param userName -l'username del client
   * @param password -la password del client
   */
  private void setStore( String provider, String host, String userName, String password ){
    try {
      conserva = sessione.getStore( provider );
      conserva.connect( host, userName, password );
    }
    catch (NoSuchProviderException ex) {
      ex.printStackTrace();
    }
    catch( MessagingException me ){
      me.printStackTrace();
    }
  }
  /**
   * Metodo che si occupa di leggere l'email
   * @param provider -specifica se s i usa POP3 oppure IMAP o qualsiasi altro
   * @param host -l'host cui connettersi
   * @param userName -l'username del client
   * @param password -la password del client
   */
  public void readEmail( String provider,String host, String userName, String password ){
    this.setStore( provider, host, userName, password );
    try {
      this.folder = conserva.getDefaultFolder();
    }
    catch (MessagingException ex) {
      folder = null;
      System.out.println ( ex.getMessage() );
    }
    if( folder != null ){
      try {
        folder = folder.getFolder("INBOX");
      }
      catch (MessagingException ex1) {
        folder = null;
        System.out.println ( ex1.getMessage() );
      }
      if( folder != null ){
        try {
          folder.open( Folder.READ_ONLY );
          elencoMessaggio = folder.getMessages();
          for( int i = 0; i < elencoMessaggio.length; i++ ){
            this.daChi = ( InternetAddress )( elencoMessaggio[ i ].getFrom()[ 0 ] );
            this.da    = daChi.getPersonal();
            if( da == null ){
              da = daChi.toString();
            }
            System.out.println( "Nuovo messaggio DA:"+ da+" OGGETTO: "+elencoMessaggio[i].getSubject()+"  DATA INVIO: "+elencoMessaggio[i].getSentDate()+" DIMENSIONI: "+ this.calcolaKBytes( elencoMessaggio[i].getSize() ) );
          }
          folder.close( false );
        }
        catch (MessagingException ex2) {
          System.err.println( ex2.getMessage() );
        }
      }else{
        System.out.println( "Folder INBOX non individuato" );
      }
    }else{
      System.out.println( "Folder di default non trovato" );
    }
  }
  /**
   * Metodo che converte l'intero contenente la dimensione in byte
   * del messaggio in una stringa con i simboli
   *       1) B ( se la dimensione del messaggio è inferiore a 1000 )
   *       2) KB( se maggiore o uguale a 1000 )
   * @param bytes dimensione in bytes del messaggio
   * @return la stringa risultante dall'elaborazione
   */
  private String calcolaKBytes( int bytes ){
    String result = "";
    if( bytes < 1000 ){
      result = bytes + "B";
    }else{
      float divisione = ( float )( bytes/1000 );
      result = divisione + "KB";
    }
    return result;
  }
} 
 
Io non le provo da un bel po' di tempo ma mi ricordo con sicurezza che funzionavano.
Ciao