package com.duoduo.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
import com.duoduo.std.StdOut;
public class EmailTest {
private String host = "10.1.243.241";
private int port = 25;
private String from = "sx_9981@ttc.neusoft.com";
private String to = "sx_9982@ttc.neusoft.com";
private String data = "test";
private Scanner in;
private PrintWriter out;
private final String LINEFEED="\r\n";
public void sendMail() {
try {
Socket s = new Socket(host, port);
try {
InputStream inStream = s.getInputStream();
OutputStream outStream = s.getOutputStream();
in = new Scanner(inStream);
out = new PrintWriter(outStream, true);
String initialID = in.nextLine();
// 220
StdOut.println(initialID);
String hostName = InetAddress.getLocalHost().getHostName();
StdOut.println(hostName);
send("HELO " + hostName);
// 250
String welcome = in.nextLine();
StdOut.println("welcome"+welcome);
send("MAIL From:<" + from + ">");
// 250
String senderOK = in.nextLine();
StdOut.println("senderOK:"+senderOK);
send("RCPT TO:<" + to + ">");
// 250
String recipientOK = in.nextLine();
System.out.println("recipientOK:"+recipientOK);
send("DATA");
// 354
String acceptedOK = in.nextLine();
System.out.println("acceptedOK:"+acceptedOK);
StringBuffer s1=new StringBuffer("From:<"+from+">"+LINEFEED);
s1.append("To:<"+to+">"+LINEFEED);
s1.append("Subject: "+"test"+LINEFEED);
s1.append("Date: "+new java.util.Date().toLocaleString()+LINEFEED);
s1.append("Content-Type: text/plain;charset=\"GB18030\""+LINEFEED);
s1.append(LINEFEED);
s1.append(data);
s1.append(LINEFEED);//发送
send(s1.toString());
send(".");
// 250
String dataOK = in.nextLine();
System.out.println("dataOK:"+dataOK);
send("QUIT");
// 221
String quitOK = in.nextLine();
StdOut.println("quitOK:"+quitOK);
} finally {
s.close();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void send(String msg) {
out.print(msg.replaceAll("\n", LINEFEED));
out.print(LINEFEED);
out.flush();
StdOut.print(msg.replaceAll("\n", LINEFEED));
StdOut.print(LINEFEED);
}
public static void main(String args[]) {
EmailTest email = new EmailTest();
email.sendMail();
}
}
stdout 换为System.out即可,from done,to和subject现在还显示在正文里