Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    [Java] Invio mail

    Sto cercando di inviare e-mail da un sito web costruito in jsp tramite una classe Java.

    Per spedire sto utilizzando il mio indirizzo su www.email.it e le classi del package javax.mail.*.

    Con il debug noto che riesco a collegarmi all'host ma l'autentificazione fallisce.
    L'errore è nella riga in cui mi collego all'host usando il metodo connect.

    codice:
    String host = "mail.smtp.it";
    String username = "";//cosa devo mettere??
    String password = "";//cosa devo mettere??
    
    transport.connect(host, username, password)

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ma hai provato ad inserire la tua username e la tua password che hai per accedere alla casella di posta di email?
    Tra l'altro potresti anche provare col metodo

    codice:
    transport.connect( host )
    mi sembra che anche con questo dovrebbe funzionare.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Originariamente inviato da Angelo1974
    Ma hai provato ad inserire la tua username e la tua password che hai per accedere alla casella di posta di email?
    Ho provato e non funziona. L'errore è del tipo:

    554 <cdr@ksjsk.it>: Recipient address rejected: Access denied
    DEBUG SMTP: Invalid Addresses
    DEBUG SMTP: cdr@ksjsk.it
    DEBUG SMTP: Sending failed because of invalid destination addresses

    dove al posto di quello strano indirizzo c'è il mio vero.

    Originariamente inviato da Angelo1974
    Tra l'altro potresti anche provare col metodo

    codice:
    transport.connect( host )
    mi sembra che anche con questo dovrebbe funzionare.
    Ciao
    Questo metodo non esiste, potrei usare
    codice:
    transport.connect(host, null, null)
    ma non funziona.

    Se qualcuno ha un esempio può mandarmelo?!?! Almeno potrei capire se il problema è del mio indirizzo o del codice.

    Grazie

  4. #4
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Un po' di tempo fa postai sul forum un codice, per inviare mail e che funzionava perchè l'ho usato molte volte; ora non ce l'ho, semplicemente perchè non sto lavorando col mio pc portatile; fai una ricerca sul forum, se non trovi nulla fammelo sapere che stasera ti ri-posto il codice.
    Ciao,
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  5. #5
    Se me lo puoi postare mi fai un favore.
    La ricerca del forum non funziona e non penso di trovare una soluzione entro sera considerando tutte le prove che ho già fatto.

  6. #6
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Se puoi aspettare fino a stasera intorno alle 22 te lo posto; ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  7. #7
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    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 SendEMailString po ) {

        
    pro System.getProperties();
        
    pro.put"mail.smtp.host"po );
      }

      
    /**
       * Metodo che si occupa di settare la sessione
       */
      
    private void setSessione(){

        
    sessione Session.getDefaultInstancepro );
      }

      
    /**
       * 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 sendMessaggioString daChiString aChiString oggettoString testoMessaggioboolean 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);
          
    InternetAddress.parse(aChi);

          
    messaggio.setFrom(da);
          
    messaggio.setRecipients(Message.RecipientType.TOa);
          
    messaggio.setSubject(oggetto);
          
    messaggio.setSentDate(new Date());
          
    messaggio.setText(testoMessaggio);
          
    //messaggio.setDataHandler(this.allegato);

          
    if( autoritation ){

            
    String log "franco.marmotta";
            
    String psw "franco123";
            
    t.connecthostlogpsw );
          }else{

            
    t.connect();
          }

          
    t.sendmessaggio );
          
    t.close();
        }catch( 
    AddressException ae ){

          
    ae.printStackTrace();
        }catch( 
    MessagingException me ){

          
    me.printStackTrace();
        }
      }

      public static 
    void mainString[] 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.getDefaultInstancepropnull );
      }

      
    /**
       * 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 setStoreString providerString hostString userNameString password ){

        try {
          
    conserva sessione.getStoreprovider );
          
    conserva.connecthostuserNamepassword );
        }
        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 readEmailString provider,String hostString userNameString password ){

        
    this.setStoreproviderhostuserNamepassword );
        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.openFolder.READ_ONLY );
              
    elencoMessaggio folder.getMessages();
              for( 
    int i 0elencoMessaggio.lengthi++ ){

                
    this.daChi = ( InternetAddress )( elencoMessaggio].getFrom()[ ] );
                
    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.calcolaKByteselencoMessaggio[i].getSize() ) );
              }
              
    folder.closefalse );
            }
            catch (
    MessagingException ex2) {

              
    System.err.printlnex2.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 calcolaKBytesint 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
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  8. #8
    grazie Angelo1974

    Innanzitutto grazie per la tua risposta.
    Nei giorni scorsi stavo sviluppando un'altra parte del progetto e ho provato solo oggi il tuo codice.

    Anche con il tuo codice non riesco a spedire il messaggio.

    Posto l'eccezione che lancia nel catch(MessagingException me).

    javax.mail.SendFailedException: Sending failed;
    nested exception is:
    class javax.mail.SendFailedException: Invalid Addresses;
    nested exception is:
    class javax.mail.SendFailedException: 554 <l'ind di destinazione>: Recipient address rejectes: Access denied
    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

  9. #9
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Strano.. io l'ho usato molto un po' tempo fa e funzionava bene... devo provarlo...appena posso lo farò, al momento.... non so che dirti.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  10. #10
    Può darsi che ci sia qualche blocco impostato da qualche parte?!?
    Anche un mio collega mi ha passato del codice ma non funziona... e a lui funzionava dall'ufficio all'esterno.
    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.