基于java的邮件群发软件

  • 发表时间:2021-08-22 00:12:26
  • 文章来源:网络

最近工作需要,做一个邮件群发系统,功能实现邮件群发,右键删除全选等功能,大致设计如下:

smtp设置窗口:

发送页面:

导入功能设计:

 final JButton importButton = new JButton("导入地址");         importButton.addActionListener(new ActionListener(){          //添加事件             public void actionPerformed(ActionEvent e){              //TODO 读取excel文件,写入list              JFileChooser fc=new JFileChooser();                int i=fc.showOpenDialog(scrollPane);                if(i==JFileChooser.APPROVE_OPTION){                  File file=fc.getSelectedFile();               if(file.toString().endsWith("xls")){                String URL=file.getPath();                      try{                    List<List<String>> list = ExcelCommonUtil.readExcelCommon(file.toString(),true);                                        if(list==null || list.size()==0){                     JOptionPane.showMessageDialog(null,"电子表格内容为空!");                     return;                    }                    int listLength = list.size();                        String [][] tableVales= new String[listLength][list.get(0).size()]; //数据                        for(int j = 0; j < listLength;j++){                           if(list.get(j).size()>0){                            String id = OperateProperties.genId();                        //tableVales[j][1]=list.get(j).get(excelCloumnId);                        tableVales[j][1]=id;                        if(list.get(j).size()>1){                          tableVales[j][2]=list.get(j).get(excelCloumnEmail);                         }else{                          tableVales[j][2]= "";                         }                           }                           int rowCount = table.getRowCount() +1;   //行数加上1                        Object[] temp = {String.valueOf(rowCount),tableVales[j][1],tableVales[j][2],true,INITSTATUS};                        tableModel.addRow(temp);                         }                        table.updateUI();                   }catch(Exception e1){                    e1.printStackTrace();                    JOptionPane.showMessageDialog(null,"读取电子表格文件异常!");                   }                                                     }else{                JOptionPane.showMessageDialog(null,"必须是excel2003电子表格文件!");               }                             }             }         });         panel.add(importButton);        

 

编辑发送功能:

大致功能就这些。

  final JButton sendButton = new JButton("编辑发送");         sendButton.addActionListener(new ActionListener(){          //添加事件             public void actionPerformed(ActionEvent e){               username = OperateProperties.ReadProperties(filename, "username");               password = OperateProperties.ReadProperties(filename, "password");               smtp = OperateProperties.ReadProperties(filename, "smtp");               String excelCloumn = OperateProperties.ReadProperties(filename, "excelCloumnEmail");               excelCloumnEmail = Integer.parseInt(excelCloumn);              if(table.getRowCount()==0){               JOptionPane.showMessageDialog(null,"电子邮件地址为空!");               return;              }                //TODO 获取复选框值 tempList 供调用            for(int i = 0;i<table.getRowCount();i++){             if((Boolean)tableModel.getValueAt(i,3)){              int key = i;              String value = (String)tableModel.getValueAt(i, 2);              tempMap.put(key, value);             }            }            if(tempMap.size()<=0){             JOptionPane.showMessageDialog(null,"请选择要发送的邮件地址!");             return;            }            new Message();            title = Message.getEmailCap();                  content = Message.getContent();                  fujian = Message.getFujian();                  color = new String[table.getRowCount()];                  if(title!=null&& content!=null){                   buttonActionPerformed(e);                  }                  Message.setEmailCap(null);                  Message.setContent(null);                  Message.setFujian(null);              }                       });         panel.add(sendButton);

 

关键代码:

1.右键功能:

声明邮件菜单:

private JPopupMenu popupMenu;

初始化邮件菜单内容:

 //右键         popupMenu = new JPopupMenu();      del = new JMenuItem("删除");      slectAll = new JMenuItem("全选");      popupMenu.add(del);      popupMenu.add(slectAll);

添加事件:

//删除事件      del.addActionListener(new ActionListener() {           public void actionPerformed(ActionEvent e) {            int selectedRow = table.getSelectedRow();//获得选中行的索引                  if(selectedRow!=-1)  //存在选中行                  {                   String id = (String) tableModel.getValueAt(selectedRow, 0);                   String genId = (String) tableModel.getValueAt(selectedRow, 1);                   String email = (String) tableModel.getValueAt(selectedRow, 2);                   boolean select = (Boolean) tableModel.getValueAt(selectedRow, 3);                   String status = (String) tableModel.getValueAt(selectedRow, 4);                   Object[] temp = {id,genId,email,select,status};                      tableModel.removeRow(temp);  //删除行                      //强制刷新界面          table.updateUI();                  }else{                   JOptionPane.showMessageDialog(null,"请选择一行");                  }      }});