当前位置: 首页 > 图灵资讯 > 技术篇> 在servlet中直接写端口发送邮件的例子

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

来源:图灵教育
时间:2024-02-21 09:52:38

/***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:[email protected]"); instr = in.readLine(); out.println(instr); if(instr.startsWith("250")) isOk = true; else isOk=false;

if(isOk){ ou.println("RCPT TO:[email protected]"); 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() { }}