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

📄 textgroupmail.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 TextGroupMail {
	private File emailFile = 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("打开Text文件");
		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 (emailFile == null) {
					textArea2.setText("请先选择Excel!");
					return;
				}
				Cell[] names = HandlerExcel.readFile(emailFile, 0);
				Cell[] emails = HandlerExcel.readFile(emailFile, 1);
				progressBar.setMaximum(names.length);
				progressBar.setValue(1);
				int number = names.length / TextGroupMail.THREAD_NUM;
				Cell[] newNames = new Cell[number];
				Cell[] newEmails = new Cell[number];

				for (int i = 0; i < TextGroupMail.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(".txt") || f.isDirectory();					
				}

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

⌨️ 快捷键说明

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