Issue
I got this tutorial here...
how to send an email from jsp/servlet?
However What if I have list of email addresses from DATABASE where I want to send the email to
TestMail class
public class TestMail {
public static void main(String... args) throws Exception {
// Create mailer.
String hostname = "smtp.example.com";
int port = 2525;
String username = "nobody";
String password = "idonttellyou";
Mailer mailer = new Mailer(hostname, port, username, password);
// Send mail.
String from = "[email protected]";
String to = "[email protected]";
String subject = "Interesting news";
String message = "I've got JavaMail to work!";
mailer.send(from, to, subject, message);
}
}
jsp
<form action="contact" method="post">
<p>Your email address: <input name="email"></p>
<p>Mail subject: <input name="subject"></p>
<p>Mail message: <textarea name="message"></textarea></p>
<p><input type="submit"><span class="message">${message}</span></p>
</form>
Servlet
public class ContactServlet extends HttpServlet {
private Mailer mailer;
private String to;
public void init() {
// Create mailer. You could eventually obtain the settings as
// web.xml init parameters or from some properties file.
String hostname = "smtp.example.com";
int port = 2525;
String username = "nobody";
String password = "forgetit";
this.mailer = new Mailer(hostname, port, username, password);
this.to = "[email protected]";
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String email = request.getParameter("email");
String subject = request.getParameter("subject");
String message = request.getParameter("message");
// Do some validations and then send mail:
try {
mailer.send(email, to, subject, message);
request.setAttribute("message", "Mail succesfully sent!");
request.getRequestDispatcher("/WEB-INF/contact.jsp").forward(request, response);
} catch (MailException e) {
throw new ServletException("Mailer failed", e);
}
}
}
Solution
ArrayList email= new ArrayList();
while(rs.next()) {
email.add(rs.getString("column_name"));
}
Message message = new MimeMessage(session);
InternetAddress[] address = new InternetAddress[email.size()];
for (int i = 0; i < email.size(); i++) {
address[i] = new InternetAddress(email.get(i));
}
message.setRecipients(Message.RecipientType.TO, address);
Answered By - Ravi
Answer Checked By - Clifford M. (JavaFixing Volunteer)