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

    [JAVA]Come impostare l' smtp con JavaMail

    Salve a tutti, sto creando un applicazione java usando JavaMail per un sito web dove gli utenti devono potermi inviare e-mail...ora l' smtp devo impostarlo in base alla mail del destinatario o del mittente?grazie in anticipo....

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    del mittente - che altro non è che te stesso, come sei anche il destinatario: non è l'utente che attraverso il suo client ti manda l'email, ma è l'applicazione web che ti manda l'email.. Nello specifico, vorrai utilizzare l'smtp fornito dal servizio hosting e relativo al dominio in uso.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    mmmm...ho capito ma scusa l' ignoranza mi rimane un dubbio, che indirizzo inserisco come email mittente?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    quello lo deve compilare il tuo visitatore, se mai volesse ricevere una risposta... un po' come quando ti iscrivi ad un forum o ad un qualsiasi altro servizio/sito/community
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    scusa non mi è ancora molto chiaro....il mittente non sono io??potresti magari farmi un esempio

  6. #6
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Allora, il concetto è questo: quando ricevi un'email e vai a guardare il campo from l'indirizzo che vedi non è, necessariamente, lo stesso indirizzo di chi ha inviato effettivamente l'email.
    In generale c'è bisogno di una username e password per accedere a un server smtp, dopodiché, una volta acceduto, puoi compilare come ti pare i campi from e to.
    Quindi l'utente dovrà accedere al tuo server smtp tramite il tuo username e password, ma quando manderà l'email setterà nel campo from il SUO indirizzo email.

    Se posso dire, xò, questo porta a 2 problemi:
    1)Molti client mail riconoscono come spam un'email che ha un campo from diverso da quello usato per loggarsi all'smtp server (evvabbè visto ke le ricevi tu e sai questa cosa il danno è limitato).
    2)Una persona capace osservando il programma in esecuzione potrebbe ottenere i tuoi dati (e questo a me nn piace!).

    Quindi secondo me la cosa migliore è utilizzare i dati dell'utente e farlo loggare al SUO smtp server, però hai un problema: supponi che l'utente digiti cm email sorgente tizio@email.it : da email.it devi riuscire a ricavarti l'indirizzo dell'smtp server! Io farei così: crei l'interfaccia grafica in questo modo:
    <jtextfield: parte prima della @> <Jlabel: @> <JComboBox : lista mail providers>
    , insomma nel combobox metterai solo mail providers di cui conosci l'smtp server (il + possibile ovviamente) e nel programma fai tipo una hashmap <nome servizio><smtp server>/<smtp port>.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Nel rispetto delle regole non apro un nuovo post, visto che il mio quesito riguarda esattamente il tema del primo messaggio del forum. Seguendo un codice trovato su HTML ho cercato di creare una classe per l'invio di mail utilizzando JavaMail, quindi ho creato una classe con il codice che segue. Tuttavia Eclipse fa notare un errore in corrispondenza della riga che richiama la sessione, come modificare la classe affinché funzioni? Grazie!

    codice:
    package myPackage;
    import java.util.Properties;
    import org.apache.catalina.Session;
    
    public class ClsMailer {
    	
    	public ClsMailer(){
    		
    	}
    	
    	    public static void MailerSend(){
    	    String host = "smtp.gmail.com";
    	    String from = "username";
    	    String pass = "password";
    	    Properties props = System.getProperties();
    	    props.put("mail.smtp.starttls.enable", "true"); // added this line
    	    props.put("mail.smtp.host", host);
    	    props.put("mail.smtp.user", from);
    	    props.put("mail.smtp.password", pass);
    	    props.put("mail.smtp.port", "587");
    	    props.put("mail.smtp.auth", "true");
    
    	    String[] to = {"to@gmail.com"}; // added this line
    
                /*Ecco, questa sotto è la riga che genera l'errore.
                Neppure importando org.apache.catalina.Session
                il problema si risolve. Nel dettaglio, dopo aver digitato
                Session Eclipse mi suggerisce alcune alternative
                con l'autocompletamento ma tra queste manca
                getDefaultInstance.*/
    
    	    Session session = Session.getDefaultInstance(props, null);
    	    MimeMessage message = new MimeMessage(session);
    	    message.setFrom(new InternetAddress(from));
    
    	    InternetAddress[] toAddress = new InternetAddress[to.length];
    
    	    // To get the array of addresses
    	    for( int i=0; i < to.length; i++ ) { // changed from a while loop
    	        toAddress[i] = new InternetAddress(to[i]);
    	    }
    	    System.out.println(Message.RecipientType.TO);
    
    	    for( int i=0; i < toAddress.length; i++) { // changed from a while loop
    	        message.addRecipient(Message.RecipientType.TO, toAddress[i]);
    	    }
    	    message.setSubject("sending in a group");
    	    message.setText("Welcome to JavaMail");
    	    Transport transport = session.getTransport("smtp");
    	    transport.connect(host, from, pass);
    	    transport.sendMessage(message, message.getAllRecipients());
    	    transport.close();
    	}
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    alt, tornerei un passo indietro perché forse ho frainteso: la tua applicazione è una web application oppure qualcosa di stand-alone, tipo una sorta di client da eseguire in locale? Perché se si tratta di una web-app, questa girerà nel suo container sul tuo spazio hosting e i dati della connessione al tuo smtp non potranno essere mai e poi mai accessibili ai visitatori (a meno che non ci sia un qualche vizio grosso di programmazione). Se invece l'applicazione è un client stand-alone che i tuoi visitatori scaricheranno e installeranno per mandarti ste email... mi fermerei un attimo e proverei a ripensare un po' alla struttura. Perché dovrei volere, io visitatore, installare un software che invii email al sito xyz? Che garanzie mi vengono date che oltre ai dati che penso di inviare, il programma non invii altre informazioni? E poi, come faceva notare Dark867, si instaurano anche altri problemi: il client invia le email utilizzando l'smtp fornito dalla sua connessione (non faccio nomi, ma se hai un adsl qualsiasi, sai bene che l'smtp da impostare, nella maggior parte dei casi è quello che il fornitore della connessione s'è premurato di comunicarti). Capirai che ci sono anche utenti non troppo smaliziati che di tutto ciò non sanno niente.

    Per quanto riguarda il post ti Shadow, comincerei con il leggermi la pillola di LeleFT su javamail. Trovi tutto tra i link in rilievo, primo o secondo thread del sub-forum java
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    nono raga è ovviamente una web-app...solo che sono alle prima armi con JavaMail xciò alcune cose mi sono poco chiare.....

  10. #10
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Quindi una applet?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.