请问各位高手 有没有知道 怎么用java实现个 email自动通知的功能的 代码?最好能给个原代码或着思路 不知道从那做起呀!等着急用 帮帮忙谢谢~!

解决方案 »

  1.   

    就是像outlook差不多的,当用户收到邮件后会给个提示,说明你已经收到了一封邮件。实时通知给用户
      

  2.   

    使用spring来发送邮件就是了
    JavaMailSenderImpl senderImpl=new JavaMailSenderImpl();
    senderImpl.setHost("主机名称");
    SimpleMailMessage mailMessage=new SimpleMailMessage();
    mailMessage.setTo("收件人的地址");
    mailMessage.setFrom("发件人地址");
    mailMessage.setText("你要发的内容");
    senderImpl.send(mailMessage);
    在给这个封装成一个方法,然后在特定的时候启动就是了
      

  3.   

    谢谢楼上的,我这个项目没用到spring。比如我要要通知一个用户他提交的信息我已经收到了,通过我的审核了。我需要发个邮件给他让他及时的了解到我这边已经通过了他的请求了。 我的对他的通知就是一邮件发送的形式~!
    问问大家还有什么办法没有
      

  4.   

    用jmail也一样的:
    public class Mail {  /**
       * 内部类MailInor包函了发送邮件需要的基本信息
       * 以属性方式需要对其进行配置
       * */
      class MailInfor {
        /**
         * constructor 无参
         * action 对属性进行初始化
         * */
        MailInfor() {
          setAccessory(false);
        }    private String host = "smtp.163.com";
        private String fromMail = "[email protected]";
        private List toMail;
        private String userName = "zhangliyang_good";
        private String password = "xtgmybjjmh";
        private String subject;
        private String content;
        private boolean isDebug = false;
        private boolean accessory;
        private List accessorys;    public void setAccessorys(List accessList) {
          this.accessorys = accessList;
        }    public List getAccessorys() {
          return this.accessorys;
        }    public void setHost(String host) {
          this.host = host;
        }    public void setFromMail(String fromMail) {
          this.fromMail = fromMail;
        }    public void setToMail(List toMail) {
          this.toMail = toMail;
        }    public void setUserName(String userName) {
          this.userName = userName;
        }    public void setPassword(String password) {
          this.password = password;
        }    public void setSubject(String subject) {
          this.subject = subject;
        }    public void setContent(String content) {
          this.content = content;
        }    public String getHost() {
          return host;
        }    public String getFromMail() {
          return fromMail;
        }    public List getToMail() {
          return toMail;
        }    public String getUserName() {
          return userName;
        }    public String getPassword() {
          return password;
        }    public String getSubject() {
          return subject;
        }    public String getContent() {
          return content;
        }    public void setIsDebug(boolean isDebug) {
          this.isDebug = isDebug;
        }    public boolean isIsDebug() {
          return isDebug;
        }    public void setAccessory(boolean accessory) {
          this.accessory = accessory;
        }    public boolean isAccessory() {
          return accessory;
        }    /**
         * 内部类Accessory用于发送附件,包函了发送附件需要的信息
         * 以属性方式需要对其进行配置
         * */
        class Accessory {
          private String fileUrl;
          private String fileName;
          public void setFileUrl(String fileUrl) {
            this.fileUrl = fileUrl;
          }      public String getFileUrl() {
            return this.fileUrl;
          }      public void setFileName(String fileName) {
            this.fileName = fileName;
          }      public String getFileName() {
            return this.fileName;
          }    }
      }  public boolean sendMail(MailInfor infor) {
        Properties props = new Properties();
        props.put("mail.smtp.host", infor.getHost());
        props.put("mail.smtp.auth", "true");
        Session session = Session.getDefaultInstance(props);    //是否在控制台输出日志信息
        session.setDebug(infor.isIsDebug());    MimeMessage message = new MimeMessage(session);
        try {
          message.setFrom(new InternetAddress(infor.getFromMail()));
          List list = infor.getToMail();
          if (list != null) {
            Iterator iter = list.iterator();
            while (iter.hasNext()) {
              message.addRecipient(Message.RecipientType.TO,
                                   new InternetAddress( (String) iter.next()));
            }
          }
          else {
            throw new NullPointerException("tomail is not null");
          }      message.setSubject(infor.getSubject());
          MimeMultipart mm = new MimeMultipart();      //普通文本
          BodyPart htmlPart = new MimeBodyPart();
          htmlPart.setContent(infor.getContent(), "text/html;charset=gb2312");      //附件
          if (infor.isAccessory()) {
            List accessorys = infor.getAccessorys();
            Iterator iter = accessorys.iterator();
            BodyPart streamContent = null;
            DataSource dataSource = null;
            Accessory accessory = null;
            while (iter.hasNext()) {
              streamContent = new MimeBodyPart();
              accessory = (Accessory) iter.next();
              dataSource = new FileDataSource(accessory.getFileUrl());
              streamContent.setDataHandler(new DataHandler(dataSource));
              streamContent.setFileName(accessory.getFileName());
              mm.addBodyPart(streamContent);
            }
          }
          //填加相应的属性
          mm.addBodyPart(htmlPart);      message.setContent(mm);
          message.saveChanges();
          Transport transport = session.getTransport("smtp");
          transport.connect(infor.getHost(), infor.getUserName(),
                            infor.getPassword());
          transport.sendMessage(message, message.getAllRecipients());
          transport.close();
        }
        catch (Exception e) {
          e.printStackTrace();
          return false;
        }
        return true;
      }给个应用例子:
    public static void main(String[] args) {
        Mail mail = new Mail();
        MailInfor infor = mail.new MailInfor();
        List list = new ArrayList();
        list.add("[email protected]");
        infor.setToMail(list);
        infor.setSubject("你好");
        infor.setContent("......................");
        infor.setFromMail("[email protected]");
        infor.setUserName("aaaaa");
        infor.setPassword("123456");
        infor.setAccessory(true);    //填加附件
        list = new ArrayList();    for (int i = 0; i < 2; i++) {
          Accessory accessory = infor.new Accessory();
          accessory.setFileName("bb.jpg");
          accessory.setFileUrl(
              "c:/{D940ED42-3EDC-430B-ACE2-2764187EBFED}0.jpg");
          list.add(accessory);
        }
        infor.setAccessorys(list);    if (mail.sendMail(infor)) {
          System.out.println("成功");
        }
      }

      

  5.   

    但是我按你那种方法做了 但发163邮箱发不了,好像需要认证。发其他的邮箱可以。我试了好几种方法都是发163邮箱不行具体报错是:
    javax.mail.MessagingException: 553 You are not authorized to send mail, authentication is required at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020)
    at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388)
    at com.test.Mail.sendMail(Mail.java:209)
    at com.test.Mail.main(Mail.java:244)
    帮忙再看看~!