www.pudn.com > smtp-Mail.rar > mailSendFrame.java




import java.awt.*;
import java.awt.event.*;



public class mailSendFrame extends Frame {
  smtpMail mailSender=new smtpMail();
  Panel panelMain = new Panel();
  Panel panelUp = new Panel();
  Panel panel3 = new Panel();
  Panel panel4 = new Panel();
  Panel panel6 = new Panel();
  Panel panel7 = new Panel();
  Panel panel5 = new Panel();


  TextField txtServer = new TextField();
  Checkbox cboSendConf = new Checkbox();
  TextField txtUser = new TextField();

  TextField txtPwd = new TextField();

  TextField txtTo = new TextField();

  TextField txtFrom = new TextField();

  TextField txtSubject = new TextField();
  Panel panel8 = new Panel();

  Label lblFile = new Label();
  Button cmdBrowse = new Button();
  Panel panelDown = new Panel();
  TextArea txtMail = new TextArea();
  Panel panel10 = new Panel();
  Button cmdSend = new Button();
  Button cmdExit = new Button();


  private FileDialog openFileDialog
= new FileDialog(this,"打开文件",FileDialog.LOAD);

  public mailSendFrame() {
    try {
      Init();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  public static void main(String[] args) {
    mailSendFrame mailSendFrame = new mailSendFrame();
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = mailSendFrame.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    mailSendFrame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
    mailSendFrame.setVisible(true);
    mailSendFrame.show();
  }
  private void Init() throws Exception {
    this.setLayout(new BorderLayout());
    panelMain.setLayout(new GridLayout(2,1));
    panelUp.setLayout(new GridLayout(6,1));
    panel3.setLayout(new FlowLayout());
    txtServer.setColumns(10);
    cboSendConf.setLabel("需要发送认证");
    cboSendConf.addItemListener(new java.awt.event.ItemListener() {
      public void itemStateChanged(ItemEvent e) {
        cboSendConf_itemStateChanged(e);
      }
    });
    panel5.setLayout(new FlowLayout());
    txtUser.setColumns(10);
    txtUser.setEnabled(false);
    txtUser.addTextListener(new java.awt.event.TextListener() {
      public void textValueChanged(TextEvent e) {
        txtUser_textValueChanged(e);
      }
    });
    txtPwd.setColumns(8);
    txtPwd.setEchoChar('*');
    txtPwd.setEnabled(false);
    this.setVisible(true);
    this.setBackground(Color.lightGray);
    this.setSize(new Dimension(400, 350));
    this.setTitle("邮件发送程序");
    this.addWindowListener(new java.awt.event.WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        this_windowClosing(e);
      }
    });
    txtTo.setColumns(10);
    txtFrom.setColumns(10);
    txtSubject.setColumns(10);
    lblFile.setText("              ");
    cmdBrowse.setLabel("浏览");
    cmdBrowse.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        cmdBrowse_actionPerformed(e);
      }
    });
    panelDown.setLayout(new BorderLayout());
    txtMail.setColumns(20);
    panel10.setLayout(new FlowLayout());
    cmdSend.setLabel("发送");
    cmdSend.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        cmdSend_actionPerformed(e);
      }
    });
    cmdExit.setLabel("退出");
    cmdExit.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        cmdExit_actionPerformed(e);
      }
    });
    this.add(panelMain, BorderLayout.CENTER);
    panelMain.add(panelUp, null);
    panelUp.add(panel3, null);
    panel3.add(new Label("发信服务器:"), null);
    panel3.add(txtServer, null);
    panelUp.add(panel5, null);
    panelUp.add(panel4, null);
    panel4.add(new Label("收件人:"), null);
    panel4.add(txtTo, null);
    panelUp.add(panel6, null);
    panelUp.add(panel7, null);
    panel7.add(new Label("主题:"), null);
    panel7.add(txtSubject, null);
    panel3.add(cboSendConf, null);
    panel5.add(new Label("用户名:"), null);
    panel5.add(txtUser, null);
    panel5.add(new Label("口令:"), null);
    panel5.add(txtPwd, null);
    panel6.add(new Label("发件人:"), null);
    panel6.add(txtFrom, null);
    panelUp.add(panel8, null);
    panel8.add(new Label("附件:  "), null);
    panel8.add(lblFile, null);
    panel8.add(cmdBrowse, null);
    panelMain.add(panelDown, null);
    panelDown.add(txtMail, BorderLayout.CENTER);
    panelDown.add(panel10,  BorderLayout.SOUTH);
    panel10.add(cmdSend, null);
    panel10.add(cmdExit, null);
    panelDown.add(new Label("  "),  BorderLayout.EAST);
    panelDown.add(new Label("  "),  BorderLayout.WEST);
  }

  void cmdExit_actionPerformed(ActionEvent e) {
    System.exit(0);
  }

  void cboSendConf_itemStateChanged(ItemEvent e) {
    txtUser.setEnabled(cboSendConf.getState());
    txtPwd.setEnabled(cboSendConf.getState());
  }

  void this_windowClosing(WindowEvent e) {
    System.exit(0);
  }

  void cmdBrowse_actionPerformed(ActionEvent e) {
    openFileDialog.show();
    String fileName="";
    fileName= openFileDialog.getDirectory()+openFileDialog.getFile();
   if(!fileName.trim().equals(""))  lblFile.setText(fileName);
  }

  void cmdSend_actionPerformed(ActionEvent e) {
    mailSender.setSendConf(cboSendConf.getState());
    if(cboSendConf.getState()){
       mailSender.setUser(txtUser.getText().trim());
       mailSender.setPwd(txtPwd.getText().trim());
    }
    mailSender.setDomain(txtServer.getText().trim());
    mailSender.setFrom(txtFrom.getText().trim());
    mailSender.setTo(txtTo.getText().trim());
    mailSender.addHeader("Subject",txtSubject.getText().trim()) ;
    mailSender.addData(txtMail.getText()) ;
    if(!lblFile.getText().trim().equals("") )
       mailSender.addAttachment(lblFile.getText().trim());
    mailSender.open(txtServer.getText().trim(),25);
    mailSender.transmit();
    mailSender.close();
  }

  void txtUser_textValueChanged(TextEvent e) {
    txtFrom.setText(txtUser.getText());
  }
}