Java邮件群发系统

简介: 最近工作需要,做一个邮件群发系统,功能实现邮件群发,右键删除全选等功能,大致设计如下:smtp设置窗口:发送页面:导入功能设计: final JButton importButton = new JButton("导入地址");        importButton.

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

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

相关文章
|
17天前
|
存储 Java 关系型数据库
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
24 1
|
17天前
|
存储 Java 关系型数据库
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
16 0
|
17天前
|
Java 数据库 Android开发
图书销售系统【纯控制台】(Java课设)
图书销售系统【纯控制台】(Java课设)
22 1
|
17天前
|
Java 数据库 Android开发
学生寝室查寝打卡系统【纯控制台】(Java课设)
学生寝室查寝打卡系统【纯控制台】(Java课设)
22 2
|
1天前
|
存储 数据可视化 安全
Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术
智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境,这个一体化环境以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合。无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、丰富多彩的校园文化、方便周到的校园生活。简而言之,“要做一个安全、稳定、环保、节能的校园。
19 6
|
1天前
|
消息中间件 存储 Java
深度探索:使用Apache Kafka构建高效Java消息队列处理系统
【4月更文挑战第17天】本文介绍了在Java环境下使用Apache Kafka进行消息队列处理的方法。Kafka是一个分布式流处理平台,采用发布/订阅模型,支持高效的消息生产和消费。文章详细讲解了Kafka的核心概念,包括主题、生产者和消费者,以及消息的存储和消费流程。此外,还展示了Java代码示例,说明如何创建生产者和消费者。最后,讨论了在高并发场景下的优化策略,如分区、消息压缩和批处理。通过理解和应用这些策略,可以构建高性能的消息系统。
|
3天前
|
JavaScript Java 测试技术
基于Java的怀旧唱片售卖系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的怀旧唱片售卖系统的设计与实现(源码+lw+部署文档+讲解等)
25 5
|
7天前
|
JavaScript Java 测试技术
基于Java的教师上课系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的教师上课系统的设计与实现(源码+lw+部署文档+讲解等)
23 0
|
8天前
|
JavaScript Java 测试技术
基于Java的生鲜在线销售系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的生鲜在线销售系统的设计与实现(源码+lw+部署文档+讲解等)
23 1
|
8天前
|
JavaScript Java 测试技术
基于Java的题库管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的题库管理系统的设计与实现(源码+lw+部署文档+讲解等)
22 0