I am able to send email on a particular email id, but now I want to retrieve email ids of multiple users from a database and send them a message. I have tried several ways but I'm unable to get the desired results.
Here is my original code:
<%@page import="oracle.net.aso.i"%>
<%@ page import="java.io.*,java.util.*,javax.mail.*,java.sql.*"%>
<%@ page import="javax.mail.internet.*,javax.activation.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<%!
Connection con;
Statement st;
ResultSet rs;
%>
<%
Class.forName("oracle.jdbc.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","rahul","odeya");
st=con.createStatement();
rs=st.executeQuery("select email from register");
%>
<%
String host="", user="", pass="";
int i=0;
String id[] = new String[100];
while(rs.next())
{
id[i] = rs.getString(1);
}
host ="smtp.gmail.com";
user ="ocrsindore@gmail.com";
pass ="odeya";
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
String from ="ocrsindore@gmail.com";
String subject =request.getParameter("subject");
String messageText =request.getParameter("message");
boolean sessionDebug = true;
Properties props = System.getProperties();
props.put("mail.host", host);
props.put("mail.transport.protocol.", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
Session mailSession = Session.getDefaultInstance(props, null);
mailSession.setDebug(sessionDebug);
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(id[i])};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
msg.setContent(messageText, "text/html");
Transport transport = mailSession.getTransport("smtp");
transport.connect(host,from,pass);
try {
transport.sendMessage(msg, msg.getAllRecipients());
out.println("message successfully sended");
}
catch (Exception err) {
out.println("message not successfully sended");
}
transport.close();
%>
<jsp:include page="adminis.html"/>