📄 sendmail.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 + -