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 è:
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.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) { } } }
Questo è l'esempio più semplice ma il meno performante.... cmq lascio a te il compito di migliorarlo.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>"); } }
I problemi che potresti avere sono legati al fatto che alcuni provider richiedono l'autenticazione per poter inviare la mail.
Ciao

Rispondi quotando