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

80酷酷网    80kuku.com

  servlet|发送邮件/**
*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:showtop163.net");
instr = in.readLine();
out.println(instr);
if(instr.startsWith("250")) isOk = true;
else isOk=false;

if(isOk){
ou.println("RCPT TO:ycshowtop21cn.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()
{
}
}



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: