⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 groupmail.java

📁 使用java的GUI方式实现了群发邮件的功能
💻 JAVA
字号:
package com.v512;

import java.awt.Color;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import jxl.Cell;

public class GroupMail {
	private File emailExcelFile=null;
	private String sender = "";
	private String subject = "test";
	private String content = "";
	private final static int THREAD_NUM=100;

	public static void main(String[] args) {
		new GroupMail().init();
	}

	public void init() {
		final JTextArea textArea = new JTextArea(20, 50);
		final JTextArea textArea2 = new JTextArea(2, 50);
		textArea2.setForeground(Color.red);
		final JProgressBar progressBar = new JProgressBar();
		progressBar.setStringPainted(true);
		progressBar.setForeground(Color.blue);		

		JButton openButton = new JButton("打开Excel文件");
		OpenExcelFile excelFile = new OpenExcelFile();
		openButton.addActionListener(excelFile);

		JPanel buttonPanel = new JPanel();
		JLabel emailAddress = new JLabel("发件人:");
		final JTextField emailField = new JTextField(10);
		JLabel emailSubject = new JLabel("主题:");
		final JTextField subjectField = new JTextField(30); 

		JButton startButton = new JButton("开始");
		startButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {				
				sender = emailField.getText();
				subject = subjectField.getText();
				content = textArea.getText();
				if(sender.equals("")){
					textArea2.setText("请输入发件人!");
					return;
				}
				if(sender.equals("")){
					textArea2.setText("请输入主题!");
					return;
				}
				if(content.equals("")){
					textArea2.setText("请输入主题!");
					return;
				}
				if(emailExcelFile==null){
					textArea2.setText("请先选择Excel!");
					return;					
				}
				Cell[] names = HandlerExcel.readFile(emailExcelFile, 0);
				Cell[] emails = HandlerExcel.readFile(emailExcelFile, 1);				
				progressBar.setMaximum(names.length);
				progressBar.setValue(1);
				int number=names.length/GroupMail.THREAD_NUM;
				Cell[] newNames=new Cell[number];
				Cell[] newEmails=new Cell[number];
				
				
				for(int i=0;i<GroupMail.THREAD_NUM;i++){
					System.arraycopy(names, 0+i*number, newNames, 0, number);
					System.arraycopy(emails, 0+i*number, newEmails, 0, number);
					new SendMailThread(sender,subject,content,newNames,newEmails,textArea2,progressBar).start();	
				}			
			}
		});

		buttonPanel.add(emailAddress);
		buttonPanel.add(emailField);
		buttonPanel.add(emailSubject);
		buttonPanel.add(subjectField);
		buttonPanel.add(openButton);
		buttonPanel.add(startButton);

		JPanel cp = new JPanel();
		LayoutManager layout = new BoxLayout(cp, BoxLayout.Y_AXIS);
		cp.setLayout(layout);
		cp.add(buttonPanel);
		
		
		textArea.setText("请输入邮件正文!");
		JScrollPane jp = new JScrollPane(textArea);
		cp.add(jp);
		
		textArea2.setText("发送信息输出");
		textArea2.setEditable(false);
		JScrollPane jp2 = new JScrollPane(textArea2);
		cp.add(jp2);		
		cp.add(progressBar);

		JFrame frame = new JFrame("群发邮件软件.");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setContentPane(cp);
		frame.pack();
		frame.setVisible(true);
	}

	class OpenExcelFile implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			JFileChooser chooser = new JFileChooser();
			chooser.setCurrentDirectory(new File("."));
			chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
				public boolean accept(File f) {
					return f.getName().toLowerCase().endsWith(".xls") || f.isDirectory();
				}

				public String getDescription() {
					return "excel file";
				}
			});
			int r = chooser.showOpenDialog(new JFrame());
			if (r == JFileChooser.APPROVE_OPTION) {
				GroupMail.this.emailExcelFile = chooser.getSelectedFile();
				SmtpMail smtp = new SmtpMail();				
				smtp.send("mail.v512.com", "liuwei@v512.com", "liuwei8809@163.com", "file中文", "中文",
						GroupMail.this.emailExcelFile.getPath());
			}
		}
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -