?? sendmail.java
字號:
package com.softeem.mailserver.smtp;
import java.io.*;
import java.net.*;
/*
* 發(fā)郵件。SMTP協(xié)議: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 + -