Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    46

    Invio mail mediante jsp

    Ciao a tutti!
    In questo forum ho visto la seguente classe per implementare l'invio di mail tramite java:

    import javax.mail.*;
    import java.util.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    import java.io.*;

    public class javamaildemo {
    String host = "nome_host"; //tuo smtp
    String from = "ind_mail"; //tuo indirizzo email
    String ToAddress = "ind_mail"; //destinatario
    String user = "user";
    String pass = "pwd";

    public javamaildemo() {
    try {
    //initialize the StringBuffer object within the try/catch loop
    StringBuffer sb = new StringBuffer( );

    //Get system properties
    Properties props = System.getProperties( );

    //Setup mail server
    props.put("mail.smtp.host", host);
    props.put("mail.debug", "true");
    props.put("mail.smtp.auth","true");

    //Get session
    Session session = Session.getDefaultInstance(props, null);
    session.setDebug(true);
    session.setPasswordAuthentication(new URLName("smtp",host,25,"INBOX",user,pass), new PasswordAuthentication(user,pass));

    //Define message
    MimeMessage msg = new MimeMessage(session);
    //Set the from address
    msg.setFrom(new InternetAddress(from));
    //Set the to address
    msg.addRecipient(Message.RecipientType.TO, new InternetAddress(ToAddress));
    //Set the subject
    msg.setSubject("Test mail using JavaMail APIs");
    //Set the text content for body
    sb.append("This is the 1st String line.\n\n");
    sb.append("This is the 2nd String line.\n\n");
    sb.append("This is the 3rd String line.\n\n");
    msg.setText(sb.toString( ));
    //Send message
    Transport tr = session.getTransport("smtp");
    tr.connect(host, user, pass);
    msg.saveChanges(); // don't forget this
    tr.sendMessage(msg, msg.getAllRecipients());
    tr.close();
    }
    catch (MessagingException e) {
    System.out.println(e);
    }
    }

    public static void main(String[] args) {
    javamaildemo jv = new javamaildemo();
    }
    }


    Funziona regolarmente, ma posso utilizzarla,richiamarla all'interno di una java server page? Se si, in che modo?
    Visto la mia scarsa esperienza con java, sarebbe gradita una descrizione chiara e approfondita dell'argomento in questione
    Grazie

  2. #2
    Ciao. Intanto ti ringrazio perché con il codice che hai postato (javamaildemo) mi ha risolto un milione di problemi!

    Parlando della tua richiesta, intanto devi avere una pagina con dei form da compilare come ad esempio

    <FORM method="post" name="form" action="spedisci.jsp">
    <TABLE>
    <TR>
    <TD>
    Destinatario
    </TD>
    <TD>
    <INPUT type="text" name="destinatario">
    </TD>
    </TR>
    <TR>
    <TD>
    Oggetto
    </TD>
    <TD>
    <INPUT type="text" name="oggetto">
    </TD>
    </TR>
    <TR>
    <TD>
    Messaggio
    </TD>
    <TD>
    <TEXTAREA rows="10" cols="100"></TEXTAREA>
    </TD>
    </TR>
    <TR>
    <TD colspan="2">
    <INPUT type="submit" value="invia" style="width: 90%">
    </TD>
    </TR>
    </TABLE>
    </FORM>

    Nel momento in cui viene premuto il tasto invia i parametri destinatario, oggetto e testo vengono passati alla pagina spedisci.jsp che sarà fatta più o meno così:

    .
    .
    .
    <BODY>

    <%
    String dest = request.getParameter("destinatario");
    String ogg = request.getParameter("oggetto");
    String testo = request.getParameter("testo");

    /* Qui è importante passare le tre stringhe ad un metodo che ne controlli la validità */

    /* Per poter utilizzare la classe javamaildemo (quella che hai postato tu) in questa pagina devi:
    - Includere la classe in un package
    - Metterla in webapps\TUOSITO\WEB-INF\classes\NOMEPACKAGE\
    - Dovresti anche fare un archivio jar (puoi chiamarlo come vuoi) e metterlo nella cartella
    WEB-INF\lib (ma funziona anche senza)
    - Importare tale package con la direttiva import es <%@ page contentType="text/html; charset=iso-8859-1"
    language="java" import="nomepackage.*" %> come prima riga
    */

    try {
    new javamaildemo(dest, ogg, testo);// l'ho modificata in modo che prenda questi tre parametri dall'esterno
    out.println("Mail inviata correttamente a " + dest);
    }
    catch(Exception e) { out.println("Errore: " + e.toString()); }

    %>

    </BODY>
    .
    .
    .

    Spero di essere stato chiaro, se ci sono problemi dimmi pure.

    Ciao
    Il cinghiale è un animale raffinato

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.