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

发表于:2007-06-08来源:作者:点击数: 标签:
/** *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()
{
}
}

(出处:CSDN.NET )

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