在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: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()
{
}
}
补充:Jsp教程,Jsp/Servlet开发工具