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