Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [Java] Servlet e-mail

  1. #1

    Servlet e-mail

    Ragazzi innanzitutto salve a tutti!!!
    E' il mio primo post e colgo l'occasione per fare a tutti i migliori auguri di buon anno e buone Feste!!

    Veniamo al mio problema:

    all' università mi è stata assegnata una tesina (il corso è completamente basato sulle servlet http) che consiste nel realizzare un sito web che gestisca registrazioni, login e tante altre cose.
    Volevo realizzare un form che, tramite l'inserimento della propria e-mail, invii una mail all'indirizzo inserito con all'interno username e password associato alla mail stessa!!
    Si insomma, inserisco l'email nel form, la servlet provvede ad effettuare una query sul database ove sono inseriti i dati delle registrazioni, estrae l'user e la password, e li spedisce via mail all'indirizzo prima inserito.

    Ok, mi rendo conto che pretendere la risoluzione completa è veramente troppo anche perchè ho quasi fatto tutto!!!L'unica cosa che non riesco a fare è integrare il tutto!!

    Cioè, la parte di "estrazione" dei dati tramite l'e-mail l'ho fatta ed è :

    import java.io.*;
    import java.util.*;

    import java.sql.*;
    import javax.servlet.*;
    import javax.servlet.http.*;

    public class send extends HttpServlet{
    public void service (HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {


    PrintWriter out = res.getWriter();


    String query ="SELECT * FROM utenti WHERE mail = '"+posta+"'";

    String dbUrl = "jdbcdbc:utenti";




    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //procedura di connessione al database
    Connection c =
    DriverManager.getConnection(dbUrl); //procedura di connessione al database
    Statement s=c.createStatement(); //creazione di uno statement
    ResultSet r=s.executeQuery(query);

    while(r.next()) {
    String v5 = r.getString("username");
    String v6 = r.getString("password");}
    }

    catch (Exception e)
    {
    out.println("<HTML>");
    out.println("<BODY background=ovibos_moschatus01.jpg>");
    out.println("<H1>Errore</H1>");
    out.println(e.toString());
    out.println("</BODY>");
    out.println("</HTML>");
    }
    }



    e la parte di invio della mail è:

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

    public class invio
    {

    public static void main(String args[])
    {


    String host = "xxxx";
    String from = "xxxxxxxx";

    String to = "xxxxxxxxxxxx";
    String subject = "emaildanielecalise";
    String text = "prova";


    Properties props = System.getProperties();
    props.put("mail.smtp.host", host);

    Session session = Session.getDefaultInstance(props, null);
    session.setDebug(false);


    try
    {

    MimeMessage msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress(from));
    InternetAddress[] address = {new InternetAddress(to)};
    msg.setRecipients(Message.RecipientType.TO, address);
    msg.setSubject(subject);

    MimeBodyPart mbp_text = new MimeBodyPart();
    mbp_text.setText(text);

    Multipart mp = new MimeMultipart();
    mp.addBodyPart(mbp_text);



    msg.setContent(mp);


    msg.setSentDate(new Date());


    Transport.send(msg);

    System.out.println("Successful send to " + to);
    }
    catch (MessagingException mex) { }



    }
    }

    Mi sto veramente scervellando per trovare una soluzione ma proprio non ci riesco!!!
    Magari ho solo bisogno di un po' di riposo!!!

    No a parte gli scherzi ringrazio anticipatamente chiunque riesca ad aiutarmi!!!!!!

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    il linguaggio va specificato nel titolo, come da regolamento
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  3. #3
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; non mi sembra di aver afferato in fondo il tuo problema.... da quello che ho capito dovresti utilizzare il codice dell'invio della mail all'interno del servlet, giusto?
    Se è così non ce la farai mai se non cambi il codice dell'invio mail; la cosa più semplice che tu possa fare è:

    codice:
    import java.util.*; 
    import java.io.*; 
    import javax.mail.*; 
    import javax.mail.internet.*; 
    import javax.activation.*; 
    
    public class invio 
    { 
    
    public static void sendMail(String from, String to) 
    { 
    
    
    String host = "xxxx"; 
    //String from = "xxxxxxxx"; 
    
    //String to = "xxxxxxxxxxxx"; 
    String subject = "emaildanielecalise"; 
    String text = "prova"; 
    
    
    Properties props = System.getProperties(); 
    props.put("mail.smtp.host", host); 
    
    Session session = Session.getDefaultInstance(props, null); 
    session.setDebug(false); 
    
    
    try 
    { 
    
    MimeMessage msg = new MimeMessage(session); 
    msg.setFrom(new InternetAddress(from)); 
    InternetAddress[] address = {new InternetAddress(to)}; 
    msg.setRecipients(Message.RecipientType.TO, address); 
    msg.setSubject(subject); 
    
    MimeBodyPart mbp_text = new MimeBodyPart(); 
    mbp_text.setText(text); 
    
    Multipart mp = new MimeMultipart(); 
    mp.addBodyPart(mbp_text); 
    
    
    
    msg.setContent(mp); 
    
    
    msg.setSentDate(new Date()); 
    
    
    Transport.send(msg); 
    
    System.out.println("Successful send to " + to); 
    } 
    catch (MessagingException mex) { } 
    
    
    
    } 
    }
    Poi nel servlet scrivi, e presuppongo che dalla query tu ricavi anche la mail dell'utente, supponiamo che questo campo si chiami eMail:

    codice:
    import java.io.*; 
    import java.util.*; 
    
    import java.sql.*; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 
    
    public class send extends HttpServlet{ 
    public void service (HttpServletRequest req, HttpServletResponse res) 
    throws ServletException, IOException { 
    
    
    PrintWriter out = res.getWriter(); 
    
    
    String query ="SELECT * FROM utenti WHERE mail = '"+posta+"'"; 
    
    String dbUrl = "jdbc:odbc:utenti"; 
    
    
    
    
    try { 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //procedura di connessione al database 
    Connection c = 
    DriverManager.getConnection(dbUrl); //procedura di connessione al database 
    Statement s=c.createStatement(); //creazione di uno statement 
    ResultSet r=s.executeQuery(query); 
    
    while(r.next()) { 
    String v5 = r.getString("username"); 
    String v6 = r.getString("password");
    invio.sendMail( "danailecalise@tuoHost", r.getString("eMail"));
    } 
    } 
    
    catch (Exception e) 
    { 
    out.println("<HTML>"); 
    out.println("<BODY background=ovibos_moschatus01.jpg>"); 
    out.println("<H1>Errore</H1>"); 
    out.println(e.toString()); 
    out.println("</BODY>"); 
    out.println("</HTML>"); 
    } 
    }
    Questo è l'esempio più semplice ma il meno performante.... cmq lascio a te il compito di migliorarlo.
    I problemi che potresti avere sono legati al fatto che alcuni provider richiedono l'autenticazione per poter inviare la mail.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  4. #4
    Ringrazio angelo e chiedo scusa a mmarzia...Sai com'è, sono un po inesperto!!!!!!!Buon anno a tutti!!

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.