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

📄 sendmail.java

📁 mailserver 是个好东西啊 大家一起来下
💻 JAVA
字号:
package com.softeem.mailserver.smtp;

import java.io.*;
import java.net.*;

/*
 * 发邮件。SMTP协议:helo,mail from,rcpt to,data(结束时以为.来标识。<CR><LF>.<CR><LF>)
 *  ,quit等命令来判断下一步应该做什么
 */
public class SendMail extends Thread {
	private static final String SMTP_HELO = "HELO";

	private static final String SMTP_MAILFROM = "MAIL";

	private static final String SMTP_RCPT = "RCPT";

	private static final String SMTP_DATA = "DATA";

	private static final String SMTP_QUIT = "QUIT";

	private Socket cilent;

	private BufferedReader br;

	private PrintStream ps;

	public SendMail(Socket s) {
		cilent = s;
		try {
			ps = new PrintStream(cilent.getOutputStream(), true);
			ps.println("WELCOME TO MY SMTPSERVER");
			ps.flush();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		start();
	}

	public void run() {
		try {
			br = new BufferedReader(new InputStreamReader(cilent
					.getInputStream()));
			String str = null;
			while (parseCommand(readCommand())) {
				;
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private boolean parseCommand(String string) {
		// TODO Auto-generated method stub
		return false;
	}

	private String readCommand() {
		// TODO Auto-generated method stub
		try {
			for (;;) {
				String orderLine = br.readLine();
				if (orderLine.trim() != null)
					orderLine = orderLine.trim();
				return orderLine;
			}

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public void readOrder() {
		int i = 0;
		try {
			while (true) {
				if (br.readLine().trim().substring(0, 3).equalsIgnoreCase(
						SMTP_HELO))
					sendOrder(doHelo());
				else if (br.readLine().trim().substring(0, 3).equalsIgnoreCase(
						SMTP_MAILFROM))
					sendOrder(doMailFrom());
				else if (br.readLine().trim().substring(0, 3).equalsIgnoreCase(
						SMTP_RCPT))
					sendOrder(doRcpt());
				else if (br.readLine().trim().substring(0, 3).equalsIgnoreCase(
						SMTP_DATA))
					sendOrder(doData());
				else if (br.readLine().trim().substring(0, 3).equalsIgnoreCase(
						SMTP_QUIT)) {
					ps.println("----bye------");
					ps.close();
					br.close();
					cilent.close();
				}
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private String doData() {
		// TODO Auto-generated method stub
		return "".toString();
	}

	private String doRcpt() {
		// TODO Auto-generated method stub
		return "".toString();
	}

	private String doMailFrom() {
		// TODO Auto-generated method stub
		return "经过验证我的服务器里已经有了你的油箱地址".toString();
	}

	private String doHelo() {
		// TODO Auto-generated method stub
		return "220_你已经建立了连接".toString();
	}

	private void sendOrder(String str1) {
		// TODO Auto-generated method stub
		ps.println(str1);
		ps.flush();
	}
}

⌨️ 快捷键说明

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