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

📄 mailsendui.java

📁 自己编写的邮件管理系统程序源代码,方便管理自己的邮件
💻 JAVA
字号:
package mail.ui;import java.awt.Color;import java.awt.FileDialog;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.io.File;import java.util.LinkedList;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.UIManager;import mail.control.send.EmailSend;import mail.message.MailMessage;public class MailSendUI extends JFrame implements ActionListener, ItemListener{    JLabel labDestination = new JLabel();    JTextField tfDest = new JTextField();    JTextField tfCopySend = new JTextField();    JLabel labCopySend = new JLabel();    JTextField tfSubject = new JTextField();    JLabel labSubject = new JLabel();    JTextArea taMail = new JTextArea();    JScrollPane jspMail = new JScrollPane(taMail);    JButton bAttach = new JButton();    JPanel listAttach = new JPanel();    JScrollPane jspAttach = new JScrollPane(listAttach);    JButton bSend = new JButton();    JButton bCancel = new JButton();    private int attachSize = 0;    /**     * 邮件客户端     */    private MailClientUI mailClient;    private MailMessage nowMailItem = null;    public MailSendUI(MailClientUI mailClient)    {        initUI();        this.mailClient = mailClient;    }    private void initUI()    {        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        JFrame.setDefaultLookAndFeelDecorated(true);        labDestination.setBorder(BorderFactory.createLineBorder(Color.black));        labDestination.setToolTipText("");        labDestination.setText("        收信人地址");        labDestination.setBounds(new Rectangle(28, 32, 100, 28));        this.getContentPane().setLayout(null);        tfDest.setBorder(BorderFactory.createLineBorder(Color.black));        tfDest.setBounds(new Rectangle(136, 32, 440, 28));        tfCopySend.setBorder(BorderFactory.createLineBorder(Color.black));        tfCopySend.setBounds(new Rectangle(136, 74, 440, 28));        labCopySend.setBounds(new Rectangle(28, 74, 100, 28));        labCopySend.setBorder(BorderFactory.createLineBorder(Color.black));        labCopySend.setText("            抄送");        tfSubject.setBorder(BorderFactory.createLineBorder(Color.black));        tfSubject.setBounds(new Rectangle(136, 113, 440, 28));        labSubject.setBounds(new Rectangle(28, 113, 100, 28));        labSubject.setBorder(BorderFactory.createLineBorder(Color.black));        labSubject.setText("            主题");        taMail.setBounds(new Rectangle(25, 249, 560, 247));        jspMail.setBounds(new Rectangle(25, 249, 560, 247));        jspMail.setBorder(BorderFactory.createLineBorder(Color.black));        bAttach.setBorder(BorderFactory.createLineBorder(Color.black));        bAttach.setText("添加附件");        bAttach.setBounds(new Rectangle(486, 181, 85, 32));        jspAttach.setBorder(BorderFactory.createLineBorder(Color.black));        listAttach.setBounds(new Rectangle(27, 159, 448, 80));        jspAttach.setBounds(new Rectangle(27, 159, 448, 80));        bSend.setBackground(UIManager.getColor("ComboBox.selectionForeground"));        bSend.setBorder(BorderFactory.createLineBorder(Color.black));        bSend.setText("发送");        bSend.setBounds(new Rectangle(177, 506, 95, 38));        bCancel.setBounds(new Rectangle(324, 506, 95, 38));        bCancel.setBackground(UIManager                .getColor("ComboBox.selectionForeground"));        bCancel.setBorder(BorderFactory.createLineBorder(Color.black));        bCancel.setText("放弃");        this.getContentPane().setBackground(Color.lightGray);        this.setResizable(false);        this.getContentPane().add(tfDest, null);        this.getContentPane().add(jspAttach, null);        this.getContentPane().add(jspMail, null);        this.getContentPane().add(bAttach, null);        this.getContentPane().add(bSend, null);        this.getContentPane().add(bCancel, null);        this.getContentPane().add(labDestination, null);        this.getContentPane().add(tfCopySend, null);        this.getContentPane().add(labCopySend, null);        this.getContentPane().add(tfSubject, null);        this.getContentPane().add(labSubject, null);        listAttach.setLayout(null);        this.bAttach.addActionListener(this);        this.bCancel.addActionListener(this);        this.bSend.addActionListener(this);        this.setSize(620, 580);        this.setLocation(100, 5);        this.setTitle("发送邮件窗口");    }    public static void main(String[] args)    {        new MailSendUI(new MailClientUI()).setVisible(true);    }    public void actionPerformed(ActionEvent e)    {        if (e.getSource().equals(this.bAttach))        {            addAttach();        } else if (e.getSource().equals(this.bCancel))        {            cancel();        } else if (e.getSource().equals(this.bSend))        {            send();        }    }    public void newMail()    {        this.tfCopySend.setText("");        this.tfDest.setText("");        this.tfSubject.setText("");        this.taMail.setText("");        this.setVisible(true);        this.attachSize = 0;        this.tfDest.setFocusable(true);    }    /**     * 添加附件     */    private void addAttach()    {        if (attachSize == 4)        {            JOptionPane.showMessageDialog(this, "您最多只能设置4个附件");            return;        }        FileDialog fd = new FileDialog(this, "打开文件", FileDialog.LOAD);        fd.setVisible(true);        if ((fd.getDirectory() != null) && (fd.getFile() != null))        {            try            {                File file1 = new File(fd.getDirectory(), fd.getFile());                JCheckBox jcb = new JCheckBox(file1.toString());                jcb.setBounds(new Rectangle(20, attachSize * 18, 400, 18));                jcb.setSelected(true);                jcb.addItemListener(this);                listAttach.add(jcb, null);                attachSize++;            } catch (Exception e)            {                e.printStackTrace();            }        }        fd = null;    }    /**     * 发送邮件     */    private void send()    {        if (checkSendMail() == 1)        {            sendEmail();        }    }    /**     * 发送邮件代码实现     */    private void sendEmail()    {        try        {            EmailSend emailSend = new EmailSend();            emailSend.setFrom(mailClient.getEmailName());            emailSend.setTo(this.tfDest.getText());            emailSend.setCc(this.tfCopySend.getText());            emailSend.setSubject(this.tfSubject.getText());            emailSend.setContent(this.taMail.getText());            int endIndex = mailClient.getEmailName().indexOf("@");            emailSend.setUser(mailClient.getEmailName().substring(0, endIndex));            emailSend.setPassword(mailClient.getEmailPsw());            emailSend.setMailhost(mailClient.getSmtpServer());            emailSend.prepareSend();            for (int i = 0; i < attachSize; i++)            {                JCheckBox jcb = (JCheckBox) listAttach.getComponent(i);                emailSend.addAttach(jcb.getText());            }            emailSend.send();            info("目的地址为" + tfDest.getText() + "的邮件已被成功发送");        } catch (Exception e)        {            error("目的地址为" + tfDest.getText() + "的邮件发送失败,错误原因如下:"                    + e.getMessage());            e.printStackTrace();        }    }    /**     * 转发邮件     *      * @param item     */    public void TSendMailMessage(MailMessage item)    {        nowMailItem = item;        tfDest.setText("");        tfSubject.setText(item.getSubject());        taMail.setText(item.getContent());        attachSize = 0;        listAttach.removeAll();        LinkedList list = item.getAttachList();        if (item.isFlag() == true && list != null)        {            for (int i = 0; i < list.size(); i++)            {                File nowdir = new File(".").getAbsoluteFile();                String dirString = nowdir.toString();                String subs = dirString.substring(0, dirString.length() - 1);                File tempDir = new File(subs + "info/enclosure/");                File filename = new File(tempDir, (String) list.get(i));                JCheckBox jcb = new JCheckBox(filename.toString());                jcb.setBounds(new Rectangle(20, attachSize * 18, 400, 18));                jcb.setSelected(true);                jcb.addItemListener(this);                listAttach.add(jcb, null);                attachSize++;            }        }        listAttach.updateUI();        this.setVisible(true);    }    /**     * 回复邮件     *      * @param item     */    public void replyMailMessage(MailMessage item)    {        nowMailItem = item;        attachSize = 0;        listAttach.removeAll();        this.tfDest.setText(item.getFrom());        this.tfSubject.setText("回复:" + item.getSubject());        this.taMail.setText("\r\n\r\n\r\n您在给我的信中写到:\r\n" + item.getContent());        this.taMail.setFocusable(true);        this.setVisible(true);    }    /**     * 检查设置     */    private int checkSendMail()    {        if (this.tfDest.getText().trim().equals(""))        {            error("发送邮件错误:您必须输入收信人地址");            return 0;        }        if (this.tfDest.getText().trim().indexOf("@") < 0)        {            error("发送邮件错误:您必须输入正确的收信人地址");            return 0;        }        if (this.taMail.getText().trim().equals(""))        {            error("发送邮件错误:您必须输入邮件正文信息");            return 0;        }        return 1;    }    /**     * 显示信息     *      * @param errorInfo     */    private synchronized void info(String info)    {        mailClient.log(info);        JOptionPane.showMessageDialog(this, info);    }    /**     * 显示错误信息     *      * @param errorInfo     */    private synchronized void error(String errorInfo)    {        mailClient.errorLog(errorInfo);        JOptionPane.showMessageDialog(this, errorInfo);    }    public void itemStateChanged(ItemEvent e)    {        for (int i = 0; i < attachSize; i++)        {            JCheckBox jcb = (JCheckBox) listAttach.getComponent(i);            if (jcb.isSelected() == false)            {                listAttach.remove(i);                attachSize--;                break;            }        }        for (int i = 0; i < attachSize; i++)        {            JCheckBox jcb = (JCheckBox) listAttach.getComponent(i);            jcb.setBounds(new Rectangle(20, i * 18, 400, 18));        }        listAttach.updateUI();    }    /**     * 取消     */    private void cancel()    {        this.setVisible(false);        mailClient.getReceiveUI().setVisible(true);    }}

⌨️ 快捷键说明

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