Java邮件如何在条件下自动发送电子邮件

时间:2011-06-27 13:54:59

标签: jsf java-ee javamail

之前从未使用过Java邮件。

在我的JSF Web应用程序中,我有一个实体(followUp),其属性private Date checkDate;对应于Animal实体。 (动物有很多后续记录)。否则:

用户必须每3个月在{followUp}中创建一条新记录并将其标记为已选中,并提供其操作日期“checkDate”。但由于用户非常懒惰,他只为少数动物做到了这一点。 因此,他实际上希望通过电子邮件通知未检查超过3个月的动物。 示例:我在2011年1月1日创建了动物'A'的followUp记录,然后在大约01/04/2011,用户收到一封电子邮件,提醒他去检查动物B的后续行动。

Web应用程序正在本地企业网络上运行。

我所知道的就是那个片段:

import javax.mail.*;
import javax.mail.internet.*;

import java.util.Properties;

class SimpleMail {
    public static void main(String[] args) throws Exception{
      Properties props = new Properties();
      props.setProperty("mail.transport.protocol", "smtp");
      props.setProperty("mail.host", "mymail.server.org");
      props.setProperty("mail.user", "emailuser");
      props.setProperty("mail.password", "");

      Session mailSession = Session.getDefaultInstance(props, null);
      Transport transport = mailSession.getTransport();

      MimeMessage message = new MimeMessage(mailSession);
      message.setSubject("Testing javamail plain");
      message.setContent("This is a test", "text/plain");
      message.addRecipient(Message.RecipientType.TO,
           new InternetAddress("elvis@presley.org"));

      transport.connect();
      transport.sendMessage(message,
          message.getRecipients(Message.RecipientType.TO));
      transport.close();
    }
}

为此目的,我应该创建一个Servlet过滤器,一个监听器,一个应用程序Scoped支持bean吗?一个循环followUp记录并返回最后一条记录的checkDate并将其与今日日期进行比较的查询?

任何帮助都可以。问候。

0 个答案:

没有答案