Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    15

    Inviare mail da Tomcat 6

    Ciao a tutti,
    su internet ho trovato il seguente script per inviare mail
    codice:
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.net.*;
    
    public class MailServlet extends HttpServlet {
    
        /**
    	 * 
    	 */
    	private static final long serialVersionUID = -9039413964097796343L;
    	String MAIL_SERVER_URL = "127.0.0.1"; 
        int MAIL_PORT = 25; 
        Socket socket;       
        DataInputStream in;   
    	    PrintStream out;       
    	    String str;         
    	 
    	    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	        PrintWriter out;
    	                 
    	        SendMail("From", "To", "subj", "text");
    	        response.setContentType("text/html");
    	        out = response.getWriter();
    	        out.println("n");
    	        out.println("n");
    	        out.println("SendMailn");
    	        out.println("n");
    	        out.println("n");
    	        out.close();
    	    }
     
    	    public void SendMail(String to, String from, String subject, String message) throws ProtocolException, IOException {
    	        Socket socket = new Socket(MAIL_SERVER_URL, MAIL_PORT);
            in = new DataInputStream(socket.getInputStream());
    	        out = new PrintStream(socket.getOutputStream());
    	        if (!checkStatus("220")) {
                throw new ProtocolException(str);
            }
    	        out.println("HELO " + MAIL_SERVER_URL);
            out.flush();
            if (!checkStatus("250")) {
    	            throw new ProtocolException(str);
    	        }
    	        out.println("MAIL FROM: " + from);
    	        out.flush();
    	        if (!checkStatus("250")) {
    	            throw new ProtocolException(str);
    	        }
    	        out.println("RCPT TO: " + to);
    	        out.flush();
    	        if (!checkStatus("250")) {
    	            throw new ProtocolException(str);
    	        }
    	        out.println("DATA");
    	        out.flush();
    	        if (!checkStatus("354")) {
    	            throw new ProtocolException(str);
    	        }
    	        out.println("From: " + from);
    	        out.println("To: " + to);
    	        out.println("Subject: " + subject + "n");
    	        out.flush();
    	        out.println("");
    	        out.println(message);
    	        out.println(".");
    	        out.flush();
    	        if (!checkStatus("250")) {
    	            throw new ProtocolException(str);
    	        }
    	        out.println("QUIT");
    	        out.flush();
    	        in.close();
    	        socket.close();
    	    }
    	 
    	    private boolean checkStatus(String RFC) throws ProtocolException, IOException {
    	        str = in.readLine();
    	        System.out.println(str);
    	        if (!str.startsWith(RFC)) {
    	            throw new ProtocolException(str);
    	        }
    	        while (str.indexOf('-') == 3) {
    	            str = in.readLine();
    	            if (!str.startsWith("RFC")) {
    	                throw new ProtocolException(str);
    	            }
    	        }
    	        return true;
    	    }
    	}
    Ho effettuato diverse prove, specificando come "FROM" il mio indirizzo di posta e "TO" un altro mio indirizzo di posta, ma se effettuo il "Run on Server", ma il server mi risponde "java.net.ConnectException: Connection refused"
    Avete qualche idea? o una guida da linkarmi su come fare?

    Grazie in anticipo

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    codice:
    String MAIL_SERVER_URL = "127.0.0.1";
    La stessa macchina dove gira Tomcat è anche un server SMTP?
    Va bene trovare il codice on-line.... ma bisognerebbe almeno capire cosa fa.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    15
    Si sono in locale, dato che non ho un server a casa volevo tramite eclipse, sviluppare questa servlet utilizzando tomcat 6 installato sul mio windows.

    E' possibile una cosa del genere?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da odranoel
    Si sono in locale, dato che non ho un server a casa volevo tramite eclipse, sviluppare questa servlet utilizzando tomcat 6 installato sul mio windows.

    E' possibile una cosa del genere?
    Non è quello che ti ho chiesto.

    Per inviare posta, un programma (qualunque tipo di programma) deve contattare un server SMTP (generalmente fornito dal provider di accesso a internet), quindi, tramite il protocollo SMTP, richiedere l'invio della posta.

    Quello che stai cercando di fare tu con quel codice è contattare un server SMTP che dovrebbe esistere sulla stessa macchina dove hai installato Tomcat. Ora, al di là del fatto che esistono dei server SMTP da scaricare gratuitamente ed installare, tu hai un server SMTP in casa sulla stessa macchina dove è installato Tomcat? Se non sei un'azienda che ha acquistato questo servizio, io ne dubito fortemente. Per tantissimi motivi che non sto qui ad elencare.

    Di conseguenza, nella stringa che ti ho indicato nel post precedente, dovrai inserire l'indirizzo IP (o il nome) del server SMTP a cui la servlet si dovrà collegare per richiedere l'invio della posta... e come ho appena detto, questo server SMTP dovrebbe essere quello che ti è stato indicato assieme ai parametri di configurazione del tuo provider internet (quello che hai configurato per il tuo programma di posta, in buona sostanza).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    aggiungo poi che ti sarebbe molto più facile utilizzare le classi fornite in JavaMail, anche se l'approccio che stai seguendo tu è formalmente e sostanzialmente corretto (con le rettifiche del caso dovute al'SMTP in uso), basta che fai una ricerchina su internet con chiavi Tomcat JavaMail
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    15
    Ok grazie credo di aver intuito il punto di vista.

    Provo a cercare smtp gratuiti e ad effettuare una prova ^^

    Grazie anche per la segnalazione relativa a Tomcat JavaMail.

    Vi faccio sapere

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da odranoel
    Provo a cercare smtp gratuiti e ad effettuare una prova ^^
    Ma perchè?
    Hai una connessione ad internet? Sì.
    Hai una casella di posta elettronica? Presumo di sì, visto che sei registrato a questo forum.
    Basta: un server SMTP da usare dovresti già averlo. Vai a vedere i parametri di configurazione della tua casella di posta. Troverai l'indicazione di un server POP3 (per leggere la posta) e di un server SMTP (per l'invio della posta). Usa quest'ultimo...

    Se ti vai a scaricare ed installare un server SMTP (che poi, che te ne fai???) la prima cosa che ti succederà sarà che il tuo server verrà immediatamente intercettato dagli spammer e diventerai immediatamente uno spammer. La seconda cosa che ti succederà sarà il ban del IP della tua macchina... e non è bello. La terza cosa, probabilmente, sarà la sospensione del tuo contratto di fornitura di accesso ad internet (se l'operatore non è magnanimo).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Conviene che ti appoggi, come già suggerito dal buon LeleFT, all'smtp fornito a corredo con la tua connessione: un smtp "personale", appoggiato ad un ip dinamico e ad un dominio "non dominio" finirebbe quasi certamente per inviare email catalogate facilmente come spam. Tanto poi quando ti appoggerai ad un servizio hosting professionale, avrai il tuo smpt e buonanotte al secchio.
    [EDIT]
    il buon LeleFT m'ha preceduto
    [/EDIT]
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    15
    Originariamente inviato da LeleFT
    Hai una casella di posta elettronica? Presumo di sì, visto che sei registrato a questo forum.
    Si ho una casella su libero.it e su gmail.com proverò con quello quella .... dovrò gestire l'autenticazione?

    Comunque volevo fare un sever mail con linux 4 fun ... giusto perchè mi sta piacendo come sistema operativo. Pensavo fosse più facile

    Grazie per l'avvertimento sullo spam ... ovviamente non so ancora come schermarmi da tali attacchi.

    Sarà meglio che mi faccia un po di ossa sui firewall

    Grazie a tutti vi faccio sapere se mi riesce con libero o gmail.
    ciaooo

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da odranoel
    Si ho una casella su libero.it e su gmail.com proverò con quello quella .... dovrò gestire l'autenticazione?
    Alcune considerazioni per quanto riguarda l'account GMail: se non vado errato, per spedire usando l'SMTP di GMail è necessario effettuare una connessione SSL sulla porta 465. Se cerchi qui sul forum, l'argomento è già stato trattato e c'è già una soluzione pronta.

    Chiaramente, per qualunque tipo di SMTP "serio", l'autenticazione è necessaria.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.