用smtp进行测试时,服务器返回错误信息,真是搞不懂.大家帮忙看看class Smtp { public static void main(String[] args)throws Exception {
Socket cs=new Socket(InetAddress.getByName("smtp.126.com"),25);
BufferedReader bis=new BufferedReader(new InputStreamReader(cs.getInputStream()));
System.out.println(bis.readLine());
BufferedWriter pw=new BufferedWriter(new OutputStreamWriter(cs.getOutputStream()));
pw.write("HELO smtp.126.com"); pw.write('\r'); pw.write('\n');pw.flush();
System.out.println(bis.readLine());//打印出:250 OK pw.write("MAIL FROM:<[email protected]>");
pw.write('\r');pw.write('\n'); pw.flush(); System.out.println(bis.readLine());
//打印出553 authertication is required
为什么需要鉴别帐号呢?
pw.write("RCPT TO:<[email protected]>"); pw.write('\r');pw.write('\n');pw.flush(); System.out.println(bis.readLine());
//打印出503 bad sequence of commands
为什么?
.....
}
} 以上用到的两个帐号都是正确无误的,但是为什么服务器会返回两个错误信息呢,我觉得我发过去的信息是符合smtp规范的啊?
Socket cs=new Socket(InetAddress.getByName("smtp.126.com"),25);
BufferedReader bis=new BufferedReader(new InputStreamReader(cs.getInputStream()));
System.out.println(bis.readLine());
BufferedWriter pw=new BufferedWriter(new OutputStreamWriter(cs.getOutputStream()));
pw.write("HELO smtp.126.com"); pw.write('\r'); pw.write('\n');pw.flush();
System.out.println(bis.readLine());//打印出:250 OK pw.write("MAIL FROM:<[email protected]>");
pw.write('\r');pw.write('\n'); pw.flush(); System.out.println(bis.readLine());
//打印出553 authertication is required
为什么需要鉴别帐号呢?
pw.write("RCPT TO:<[email protected]>"); pw.write('\r');pw.write('\n');pw.flush(); System.out.println(bis.readLine());
//打印出503 bad sequence of commands
为什么?
.....
}
} 以上用到的两个帐号都是正确无误的,但是为什么服务器会返回两个错误信息呢,我觉得我发过去的信息是符合smtp规范的啊?
怎么有点象SOCKET通讯?
好像是EJB的范畴 找本书看看 具体我也不清楚,
曾经有幸瞄过一眼 要到哪里下第三方包或者组件
进行简单测试时服务器为什么会返回错误信息.
------
java似乎使一些人变的懒了?总想找现成的组件?我说了我写这个程序只是练练手,不是搞开发.望指点.