📄 smtp_transmitmailtoanotherserver.java
字号:
package Server.SMTP;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import Server.Server;
public class SMTP_TransmitMailToAnotherServer extends Server {
private Socket socket;
private Socket socketTransmit;
private String address;
public SMTP_TransmitMailToAnotherServer(Socket socket,String address) {
super();
this.socket=socket;
this.address = address;
}
public void startTransmit(){
try {
socketTransmit=new Socket(address,25);
BufferedReader br = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
PrintWriter pw = new PrintWriter(new OutputStreamWriter(socketTransmit
.getOutputStream()), true);
String str = null;
while ((str = br.readLine()) != null) {
System.out.println(str);
if (str.startsWith(SMTP_Final.data)) {
// 开始读取邮件的内容,读取并将其发送到转发服务器的socket,遇到“.”停止文件的读取
pw.println("354");
while (!(str = br.readLine())
.equalsIgnoreCase(SMTP_Final.endData)) {
pw.println(str);
pw.flush();
}
pw.println("250");
} else if (str.startsWith(SMTP_Final.quit)) {
// 整个OutLookClient对话结束
pw.println("221");
break;
} else {
// 对其他想不到的情况的处理
pw.println("554");
socket.close();
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -