您的位置:首页 > 编程语言 > Java开发

用java的开发简易邮件群发软件

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



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,"请选择一行");

                 }

     }});

        

       

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java