在servlet中直接写端口发送邮件的例子

发表于:2007-07-04来源:作者:点击数: 标签:
/** *Class TestEmail *@author yancheng(j-share.onchina .net ) *@version 1.0.0 * * use write socket to send email. */ import java x.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import java.net.*; public clas

/**
*Class TestEmail
*@author yancheng(j-share.onchina.net)
*@version 1.0.0
*
* use write socket to send email.
*/
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.net.*;

public class TestEmail extends HttpServlet
{
 
  private static final String CONTENT_TYPE = "text/html";
 
 
  public void init(ServletConfig config) throws ServletException
  {
    super.init(config);
  }
 
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
  {
    response.setContentType(CONTENT_TYPE);
 
    PrintWriter out = response.getWriter();
 
   Socket s = new Socket("smtp.163.net",25);
   
   PrintWriter ou = new PrintWriter(s.getOutputStream(),true);
   BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
      
    out.println("<html>");
    out.println("<head><title>TestEmail</title></head>");
    out.println("<body>");
   
    String instr = null;
  boolean isOk = false;
     
    try{
    ou.println("HELO:smtp.163.net");
    out.println(in.readLine());

    ou.println("MAIL FROM:showtop@163.net");
    instr = in.readLine();
    out.println(instr);
    if(instr.startsWith("250")) isOk = true;
    else isOk=false;

  if(isOk){
    ou.println("RCPT TO:ycshowtop@21cn.com");
    instr = in.readLine();
    out.println(instr);
    if(instr.startsWith("250"))  isOk=true;
    else isOk = false;
  }
 
  if(isOk){
    ou.println("DATA");
    instr = in.readLine();
    out.println(instr);
    if(instr.startsWith("250"))  isOk = true;
    else isOk=false;
  }
   
    ou.println("这是一个测试邮件");
    ou.println(".");
    instr = in.readLine();
    out.println(instr);
    if(instr.startsWith("250"))   isOk=true;
    else isOk=false;
  ou.println("QUIT");
    s.close();
   }
   catch(IOException x)
   {
    x.printStackTrace(System.err);
   }
   
   
    out.println("<p>ok</p>");
       
    out.println("</body></html>");
  }
 
    public void destroy()
  {
  }
}

原文转自:http://www.ltesting.net