📄 mail.java~1~
字号:
package postmail;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.net.*;import java.io.*;/** * <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; BorderLayout borderLayout1 = new BorderLayout(); JTextArea jTextArea1 = new JTextArea();//Construct the framepublic Mail() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); pack(); show(); start(); } catch(Exception e) { e.printStackTrace(); }}public void start() throws Exception{ String mailContent = ""; //邮件报文 String response = ""; //来自服务器的应答 String mailServer = ""; //邮件服务器 String from = ""; //发件人地址 String to = ""; //收件人地址 //设置邮件服务器、发件人地址、收件人地址 mailServer = "smtp.163.com"; from = "20170124@163.com"; to = "20170124@sina.com"; //设置邮件正文 mailContent = "From: " + from + "\n" + "To: " + to + "\n" + "Subject: " + "Test" + "\n" + "Hi\nIt's a test mail!\n"; //得到本机主机名 String hostName = InetAddress.getLocalHost().getHostName(); //建立一个到邮件服务器的连接,端口号25 Socket s = new Socket(mailServer,25); //将SOCKET输入流连接到带缓冲功能的输入流BufferedReader,以便一次读一行来自 //服务器的应答报文 BufferedReader inFromServer = new BufferedReader(new InputStreamReader(s.getInputStream())); //将SOCKET输出流连接到带缓冲功能的输出流PrintWriter,以便一次输出一行报文到服务器 PrintWriter outToServer = new PrintWriter(s.getOutputStream() ,true); //读取来自服务器的第一行应答,并显示在屏幕上 response = inFromServer.readLine(); jTextArea1.append("MailServer:" + response + "\n"); //将用户的帐号和密码以BASE64格式进行编码以便进行服务器身份验证 //BASE64Encoder encoder = new BASE64Encoder(); String User="20170124"; String Password="superman"; //String encodedUser = encoder.encode("c123".getBytes()); //String encodedPwd = encoder.encode("aaa".getBytes()); jTextArea1.append("Client:" + "EHLO " + hostName + "\n"); //和服务器会话,发送EHLO hostname命令 outToServer.println("EHLO " + hostName); //读入来自服务器的5行应答,并显示在屏幕上 for(int i = 0; i < 5; i++){ response = inFromServer.readLine(); jTextArea1.append("MailServer:" + response + "\n"); } jTextArea1.append("Client:" + "AUTH LOGIN \n"); //和服务器会话,发送AUTH LOGIN命令,请求身份验证 outToServer.println("AUTH LOGIN "); //读入来自服务器的应答,并显示在屏幕上 response = inFromServer.readLine(); jTextArea1.append("MailServer:" + response + "\n"); jTextArea1.append("Client:"+User+"\n"); //System.out.print("Client:" + encodedUser + "\n"); //向服务器发送自己的帐号 outToServer.println(User); //读入来自服务器的应答,并显示在屏幕上 response = inFromServer.readLine(); jTextArea1.append("MailServer:" + response + "\n"); jTextArea1.append("Client:" + Password + "\n"); //System.out.print("Client:" + encodedPwd + "\n"); //向服务器发送自己的密码 outToServer.println(Password); //读入来自服务器的应答,并显示在屏幕上 response = inFromServer.readLine(); jTextArea1.append("MailServer:" + response + "\n"); jTextArea1.append("Client:" + "MAIL FROM: " + from + "\n"); //向服务器发送MAIL FROM: 发件人地址 outToServer.println("MAIL FROM: <" + from + ">"); //读入来自服务器的应答,并显示在屏幕上 response = inFromServer.readLine(); jTextArea1.append("MailServer:" + response + "\n"); jTextArea1.append("Client:" + "RCPT TO: " + to + "\n"); //向服务器发送RCPT TO: 收件人地址 outToServer.println("RCPT TO: <" + to + ">"); //读入来自服务器的应答,并显示在屏幕上 response = inFromServer.readLine(); jTextArea1.append("MailServer:" + response + "\n"); //请求发送邮件正文 outToServer.println("DATA"); //读入来自服务器的应答,并显示在屏幕上 response = inFromServer.readLine(); jTextArea1.append("MailServer:" + response + "\n"); //开始发送邮件正文 outToServer.println(mailContent); //发送邮件结束标志 outToServer.println("."); //读入来自服务器的应答,并显示在屏幕上 response = inFromServer.readLine(); jTextArea1.append("MailServer:" + response + "\n"); //关闭SOCKET s.close();}//Component initializationprivate void jbInit() throws Exception { this.setTitle("Post Mail"); this.getContentPane().setLayout(borderLayout1); jTextArea1.setEditable(false); jTextArea1.setText("欢迎使用邮件代理"); this.getContentPane().add(jTextArea1, BorderLayout.CENTER);}//Overridden so we can exit when window is closedprotected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -