java自动发送邮件

我希望邮件在特定时间自动发送。 我能够发送邮件,但我不能让它自动完成。 谁能告诉我如何自动发送? 以下是我发送邮件的代码:

public class SendEmail { String d_email = "sofien.fkih@gmail.com", d_password = "", d_host = "smtp.gmail.com", d_port = "465", m_to = "sofien.fkih@gmail.com", m_subject = "Testing", m_text = "Hey, this is the testing email."; // Those are the values that have the email information public void send(String from, String pass, String host, String port, String to, String subject, String text) { Properties props = new Properties(); // Read properties file. props.put("mail.smtp.user", from); props.put("mail.smtp.host", host); props.put("mail.smtp.port", port); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.socketFactory.port", port); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.socketFactory.fallback", "false"); SecurityManager security = System.getSecurityManager(); try { Authenticator auth = new SMTPAuthenticator(); Session session = Session.getInstance(props, auth); MimeMessage msg = new MimeMessage(session); msg.setText(text); msg.setSubject(subject); msg.setFrom(new InternetAddress(from)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); Transport.send(msg); } catch (Exception mex) { mex.printStackTrace(); } } public class SMTPAuthenticator extends javax.mail.Authenticator { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(d_email, d_password); } } } 

查看java.util.Timer ,如果还不够,请阅读Quartz – 纯java cron兼容调度程序。

Quartz似乎更好的选择。本教程可能会帮助您设置quartz。

尝试

 public class SendEmail extends TimerTask{ public static void main(String[] args){ Timer t = new Timer(); t.schedule(new SendEmail(), 0, 9000); //send email every 9 seconds } @Override public void run() { // TODO Auto-generated method stub //Your email syntax here } 

}