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

📄 mail.java~243~

📁 基于java的邮件发送软件,希望对大家有用,
💻 JAVA~243~
字号:
package postmail;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
import sun.misc.*;
import com.borland.jbcl.layout.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class Mail extends JFrame {
  JPanel contentPane;
  String mailContent = ""; //邮件报文
  String response = ""; //来自服务器的应答
  String mailServer = ""; //邮件服务器
  String from = ""; //发件人地址
  String to = ""; //收件人地址
  String User; //登陆帐户
  String Password; //登陆密码
  String hostName; //本地主机名
  Socket s; //套接字
  BufferedReader inFromServer; //输入流
  DataOutputStream outToServer; //输出流

  XYLayout xYLayout1 = new XYLayout();
  Panel panel1 = new Panel();
  JButton jButton1 = new JButton();
  XYLayout xYLayout2 = new XYLayout();
  JButton jButton2 = new JButton();
  Panel panel2 = new Panel();
  XYLayout xYLayout3 = new XYLayout();
  JLabel jLabel1 = new JLabel();
  JTextField jTextField1 = new JTextField();
  JLabel jLabel2 = new JLabel();
  JLabel jLabel3 = new JLabel();
  JTextField jTextField2 = new JTextField();
  JTextField jTextField3 = new JTextField();
  JButton jButton3 = new JButton();
  JLabel jLabel4 = new JLabel();
  JLabel jLabel5 = new JLabel();
  JLabel jLabel6 = new JLabel();
  JTextField jTextField4 = new JTextField();
  JTextField jTextField5 = new JTextField();
  JTextField jTextField6 = new JTextField();
  JLabel jLabel7 = new JLabel();
  JTextArea jTextArea1 = new JTextArea();
  JLabel jLabel8 = new JLabel();
  JButton jButton4 = new JButton();
  JButton jButton5 = new JButton();
  ScrollPane scrollPane1 = new ScrollPane();
  JTextArea jTextArea2 = new JTextArea();
  JTextField jTextField7 = new JTextField();
  JButton jButton6 = new JButton();//登陆密码

//Construct the frame
  public Mail() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
      pack();
      show();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

//Component initialization
  private void jbInit() throws Exception {
    contentPane = (JPanel)this.getContentPane();
    this.setTitle("Post Mail");
    this.setLocation(250, 100);
    contentPane.setLayout(xYLayout1);
    jButton1.setFont(new java.awt.Font("Dialog", 0, 13));
    jButton1.setText("发邮件");
    panel1.setLayout(xYLayout2);
    jButton2.setFont(new java.awt.Font("Dialog", 0, 13));
    jButton2.setText("收邮件");
    panel2.setLayout(xYLayout3);
    jLabel1.setFont(new java.awt.Font("Dialog", 0, 16));
    jLabel1.setText("邮件服务器:");
    jTextField1.setFont(new java.awt.Font("Dialog", 0, 13));
    jTextField1.setText("SMTP.163.com");
    jLabel2.setFont(new java.awt.Font("Dialog", 0, 16));
    jLabel2.setText("用户名:");
    jLabel3.setFont(new java.awt.Font("Dialog", 0, 16));
    jLabel3.setText("密码:");
    jButton3.setFont(new java.awt.Font("Dialog", 0, 13));
    jButton3.setText("连接");
    jButton3.addActionListener(new Mail_jButton3_actionAdapter(this));
    jTextField2.setFont(new java.awt.Font("Dialog", 0, 13));
    jTextField2.setText("");
    jTextField3.setFont(new java.awt.Font("Dialog", 0, 13));
    jTextField3.setText("");
    jLabel4.setFont(new java.awt.Font("Dialog", 0, 16));
    jLabel4.setText("发信人:");
    jLabel5.setFont(new java.awt.Font("Dialog", 0, 16));
    jLabel5.setText("收信人:");
    jLabel6.setFont(new java.awt.Font("Dialog", 0, 16));
    jLabel6.setText("主题:");
    jTextField4.setFont(new java.awt.Font("Dialog", 0, 13));
    jTextField4.setText("");
    jTextField5.setFont(new java.awt.Font("Dialog", 0, 13));
    jTextField5.setText("");
    jTextField6.setFont(new java.awt.Font("Dialog", 0, 13));
    jTextField6.setText("");
    jLabel7.setFont(new java.awt.Font("Dialog", 0, 16));
    jLabel7.setText("正文:");
    jTextArea1.setText("");
    jLabel8.setFont(new java.awt.Font("Dialog", 0, 16));
    jLabel8.setText("状态信息:");
    jButton4.setFont(new java.awt.Font("Dialog", 0, 13));
    jButton4.setText("发送");
    jButton4.addActionListener(new Mail_jButton4_actionAdapter(this));
    jButton5.setFont(new java.awt.Font("Dialog", 0, 13));
    jButton5.setText("退出");
    jButton5.addActionListener(new Mail_jButton5_actionAdapter(this));
    jButton6.setFont(new java.awt.Font("Dialog", 0, 13));
    jButton6.setText("附件");
    jTextField7.setFont(new java.awt.Font("Dialog", 0, 13));
    jTextField7.setText("");
    contentPane.add(panel1, new XYConstraints(1, 2, 81, 499));
    panel1.add(jButton2, new XYConstraints(7, 70, -1, -1));
    panel1.add(jButton1, new XYConstraints(5, 5, 74, -1));
    panel1.add(jButton5, new XYConstraints(6, 135, 73, -1));
    contentPane.add(panel2,  new XYConstraints(88, 1, 425, 531));
    panel2.add(jLabel1, new XYConstraints(9, 8, 97, 25));
    panel2.add(jTextField1, new XYConstraints(110, 8, 147, 23));
    panel2.add(jTextField2, new XYConstraints(72, 46, 97, 23));
    panel2.add(jLabel3, new XYConstraints(178, 46, 52, 25));
    panel2.add(jTextField3, new XYConstraints(228, 46, 95, 23));
    panel2.add(jLabel2, new XYConstraints(6, 47, 67, 22));
    panel2.add(jButton3, new XYConstraints(355, 46, -1, 27));
    panel2.add(jLabel5, new XYConstraints(219, 90, -1, -1));
    panel2.add(jTextField4, new XYConstraints(74, 88, 130, -1));
    panel2.add(jLabel4, new XYConstraints(7, 88, -1, -1));
    panel2.add(jTextField6, new XYConstraints(74, 127, 281, 27));
    panel2.add(jLabel6, new XYConstraints(7, 129, -1, -1));
    panel2.add(jTextArea1,  new XYConstraints(75, 171, 345, 64));
    panel2.add(jLabel7, new XYConstraints(8, 167, -1, -1));
    panel2.add(jTextField5,    new XYConstraints(284, 87, 133, -1));
    panel2.add(scrollPane1, new XYConstraints(72, 341, 347, 167));
    panel2.add(jButton4, new XYConstraints(353, 296, 65, 26));
    panel2.add(jLabel8, new XYConstraints(6, 301, -1, -1));
    panel2.add(jButton6,       new XYConstraints(353, 254, 64, 27));
    panel2.add(jTextField7,   new XYConstraints(75, 255, 256, -1));
    scrollPane1.add(jTextArea2, null);
  }

//Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

 void jButton3_actionPerformed(ActionEvent e) {
   try {
     hostName=InetAddress.getLocalHost().getHostName();
     mailServer = jTextField1.getText();
     User = jTextField2.getText();
     Password = jTextField3.getText();
     //建立一个到邮件服务器的连接,端口号25
     s = new Socket(mailServer, 25);
     //将SOCKET输入流连接到带缓冲功能的输入流BufferedReader,以便一次读一行来自
     //服务器的应答报文
     inFromServer =
         new BufferedReader(new InputStreamReader(s.getInputStream()));
     //将SOCKET输出流连接到带缓冲功能的输出流PrintWriter,以便一次输出一行报文到服务器
     outToServer = new DataOutputStream(s.getOutputStream());
     //读取来自服务器的第一行应答,并显示在屏幕上
     response = inFromServer.readLine();
     jTextArea2.append("MailServer:" + response + "\n");
     //定义编码方式
     BASE64Encoder encoder = new BASE64Encoder();
     String encodedUser = encoder.encode(User.getBytes());
     String encodedPwd = encoder.encode(Password.getBytes());
     jTextArea2.append("Client:" + "HELO " + hostName + "\n");
     //和服务器会话,发送HELO hostname命令
     outToServer.println("HELO " + hostName);
     //读入来自服务器的5行应答,并显示在屏幕上
     //for(int i = 0; i < 5; i++){
     response = inFromServer.readLine();
     jTextArea2.append("MailServer:" + response + "\n");
     //}
     jTextArea2.append("Client:" + "AUTH LOGIN \n");
     //和服务器会话,发送AUTH LOGIN命令,请求身份验证
     outToServer.println("AUTH LOGIN ");
     //读入来自服务器的应答,并显示在屏幕上
     response = inFromServer.readLine();
     jTextArea2.append("MailServer:" + response + "\n");
     jTextArea2.append("Client:" + encodedUser + "\n");
     //向服务器发送自己的帐号
     outToServer.println(encodedUser);
     //读入来自服务器的应答,并显示在屏幕上
     response = inFromServer.readLine();
     jTextArea2.append("MailServer:" + response + "\n");
     jTextArea2.append("Client:" + encodedPwd + "\n");
     //向服务器发送自己的密码
     outToServer.println(encodedPwd);
     //读入来自服务器的应答,并显示在屏幕上
     response = inFromServer.readLine();
     jTextArea2.append("MailServer:" + response + "\n");
   }
   catch (Exception ex) {}
 }

void jButton4_actionPerformed(ActionEvent e) {
      try {
        from=jTextField4.getText();
        to=jTextField5.getText();
        mailContent =
        "From: " + from + "\n" +
        "To: " + to + "\n" +
        "Subject: " + jTextField6.getText() + "\n" +
        jTextArea1.getText();
        jTextArea2.append("Client:" + "MAIL FROM: " + from + "\n");
        //向服务器发送MAIL FROM: 发件人地址
        outToServer.println("MAIL FROM: <" + from + ">");
        //读入来自服务器的应答,并显示在屏幕上
        response = inFromServer.readLine();
        jTextArea2.append("MailServer:" + response + "\n");
        jTextArea2.append("Client:" + "RCPT TO: " + to + "\n");
        //向服务器发送RCPT TO: 收件人地址
        outToServer.println("RCPT TO: <" + to + ">");
        //读入来自服务器的应答,并显示在屏幕上
        response = inFromServer.readLine();
        jTextArea2.append("MailServer:" + response + "\n");
        //请求发送邮件正文
        outToServer.println("DATA");
        //读入来自服务器的应答,并显示在屏幕上
        response = inFromServer.readLine();
        jTextArea2.append("MailServer:" + response + "\n");
        //开始发送邮件正文
        outToServer.println(mailContent);
        //发送邮件结束标志
        outToServer.println(".");
        //读入来自服务器的应答,并显示在屏幕上
        response = inFromServer.readLine();
        jTextArea2.append("MailServer:" + response + "\n");
      }
    catch(Exception ex) {}
}

  void jButton5_actionPerformed(ActionEvent e) {
   try{
      s.close();
   }
   catch(Exception ex) {}
  }
}

class Mail_jButton3_actionAdapter implements java.awt.event.ActionListener {
  Mail adaptee;

  Mail_jButton3_actionAdapter(Mail adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton3_actionPerformed(e);
  }
}

class Mail_jButton4_actionAdapter implements java.awt.event.ActionListener {
  Mail adaptee;

  Mail_jButton4_actionAdapter(Mail adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton4_actionPerformed(e);
  }
}

class Mail_jButton5_actionAdapter implements java.awt.event.ActionListener {
  Mail adaptee;

  Mail_jButton5_actionAdapter(Mail adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton5_actionPerformed(e);
  }
}

⌨️ 快捷键说明

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