Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 如何在java中使用Servlet上下文侦听器发送自动电子邮件。当tomcat服务器启动时,邮件应该在后台发送_Jsp_Servlets - Fatal编程技术网

Jsp 如何在java中使用Servlet上下文侦听器发送自动电子邮件。当tomcat服务器启动时,邮件应该在后台发送

Jsp 如何在java中使用Servlet上下文侦听器发送自动电子邮件。当tomcat服务器启动时,邮件应该在后台发送,jsp,servlets,Jsp,Servlets,我正在尝试使用java中的Servlet上下文侦听器发送自动邮件。我希望在tomcat服务器启动时完成此操作。我已经在web.xml中编写了以下内容 <listener> <listener-class>com.ServletListenerTimmer</listener-class> </listener> 即使这样它也不起作用,我不知道问题出在哪里。 请帮我做这个 package com; import java.io.IOExce

我正在尝试使用java中的Servlet上下文侦听器发送自动邮件。我希望在tomcat服务器启动时完成此操作。我已经在web.xml中编写了以下内容

<listener>
    <listener-class>com.ServletListenerTimmer</listener-class>
</listener>
即使这样它也不起作用,我不知道问题出在哪里。 请帮我做这个

package com;
import java.io.IOException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Calendar;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public String date,name,month,email;
public class ServletListenerTimmer implements ServletContextListener {


public void contextInitialized(ServletContextEvent event) {

new SendReport(event.getServletContext()), 0, 1 * 1000);

}
public void contextDestroyed(ServletContextEvent event) {

}
}
public class SendReport extends TimerTask {

private ServletContext context = null;
public SendReport(ServletContext context) {
this.context = context;
}
public void run() {
Calendar cal = Calendar.getInstance();
int sysdate=cal.get(Calendar.Date);
int sysmonth=cal.get(Calendar.Month);
sysmonth+=11;
Connection con=null;
Statement st=null;
ResultSet rs=null;
boolean f=false;


try{  

    Class.forName("com.mysql.jdbc.Driver").newInstance();  
    String connectionURL = "jdbc:mysql://localhost:1234/email"; 
    con=DriverManager.getConnection(connectionURL, "root", "root");  
    st=con.createStatement();  
    String sql = "SELECT * FROM emp"; 
    rs = st.executeQuery(sql); 
while(rs.next())
{
    name=rs.getString(2);
    date=rs.getString(3);
    month=rs.getString(4);
    email=rs.getString(6);
    if(date==sysdate && month==sysmonth)
    {
doReportTask();// you can write your sendmail task there
    }
}
}
} else {
context.log("the prevenient task is still running!");
}
}

 public void doReportTask()
{
String result;
final String username = "kavithagowda15@gmail.com";
 final String password = "Kavitha9480317174";
// Recipient's email ID needs to be mentioned.

String cc = "kruthi@corasent.com";
// Sender's email ID needs to be mentioned
String from = "kavithagowda15@gmail.com";

// Assuming you are sending email from localhost
String host = "localhost";

// Get system properties object
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", "587");



// Get the default Session object.
Session mailSession = Session.getInstance(properties,new javax.mail.Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(username, password);
    }
  });

 try{
   Message message = new MimeMessage(mailSession);
    message.setFrom(new InternetAddress(from));
    message.setRecipients(Message.RecipientType.TO,
        InternetAddress.parse(email));

    // Add to Cc: header
    message.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc));
    message.setSubject("Testing Subject");
    message.setText("Dear " +name +","
        + "\n\n No spam to my email, please!");

    Transport.send(message);

    System.out.println("Done");
}catch (MessagingException mex) {
  mex.printStackTrace();
  result = "Error: unable to send message....";
}
}
}