如果不支持附件的话,那还有什么好的呢?有一个例子很清楚了呀。/**
*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";
  
  //修改以下服务器及邮箱信息。
  private static final String SMTPSERVER="smtp.netease.com";
  private static final String FROMMAIL = "[email protected]";
  private static final String RECPTOMAIL ="[email protected]";
  
  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(SMTPSERVER,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:"+SMTPSERVER);
    out.println(in.readLine());    ou.println("MAIL FROM:"+FROMMAIL);
    instr = in.readLine();
    out.println(instr);
    if(instr.startsWith("250")) isOk = true;
    else isOk=false; if(isOk){
    ou.println("RCPT TO:"+RECPTOMAIL);
    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() 
  {
  }
}

解决方案 »

  1.   

    发邮件的代码就这么几行,也要50元,你也太黑了没吧。
    import java.util.*;
    import java.io.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;public class CMail
    {
    public String ret=null;
    public CMail(String to,String from,String subject,String body)
    {
    Properties props=new Properties();
    props.put("mail.smtp.host","online.sh.cn");//邮件服务器不一定对
    javax.mail.Session session=javax.mail.Session.getDefaultInstance(props,null);
    try{
    Message msg=new MimeMessage(session);
    msg.setFrom(new InternetAddress(from));
    InternetAddress[] address={new InternetAddress(to)};
    msg.setRecipients(Message.RecipientType.TO,address);
    msg.setSubject(subject);
    msg.setSentDate(new Date());
    msg.setText(body);
    Transport.send(msg);
    }catch(Exception ee){
    ret+="failed! "+ee.toString();
    }
    }
    public static void main(String[] args)
    {
    String note="a java class for sending email\n";
    note+="usage: new CMail(to,from,subject,body)";
    System.out.println(note);
    }
    }还有发送网页的:
    import java.util.*;
    import java.io.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    public class SendHtml{
    public SendHtml(String to,String from,String subject,String filepath)
    {
    Properties props=new Properties();
    props.put("mail.smtp.host","online.sh.cn");
    Session session=Session.getDefaultInstance(props,null);
    try{
    Message msg=new MimeMessage(session);
    msg.setFrom(new InternetAddress(from));
    InternetAddress[] address={new InternetAddress(to)};
    msg.setRecipients(Message.RecipientType.TO,address);
    msg.setSubject(subject);
    collect(filepath,msg);
    msg.setSentDate(new Date());
    Transport.send(msg);
    }catch(Exception ee){
    ee.printStackTrace();
    }
    }
     
        public void collect(String str, Message msg)
    throws MessagingException, IOException {

    String subject = msg.getSubject();
    StringBuffer sb = new StringBuffer();
    sb.append("");
    try{
    RandomAccessFile file=new RandomAccessFile(str,"r");
    int filePointer=0;
    int fileLength=(int)file.length();
    file.seek(0);
    String tmp="";
    while(filePointer<fileLength){
    filePointer++;
    tmp=file.readLine();
    if(tmp==null)
    break;
    else
    tmp=tmp.trim();
    sb.append(tmp+"\n");
    }
    file.close();
    }catch(Exception e){ 
    sb.append("<HTML>\n");    
    sb.append("<HEAD>\n");    
    sb.append("<TITLE>\n");   
    sb.append(subject + "\n");
    sb.append("</TITLE>\n");  
    sb.append("</HEAD>\n");   
    sb.append("<BODY>\n");
    sb.append("Sorry,there is some errors!");
    sb.append("</body></html>");
    }       
    //sb.append(str+"\n");
    msg.setDataHandler(new DataHandler(new ByteArrayDataSource(sb.toString(), "text/html")));
        }                   
    }       还有带附件发送的、还有收邮件的,不就官方网站上写的很清楚,并且我们早就已经用过了(现在还在用,主要用于程序出错监控)                
      

  2.   

    If you think it not cheap,you don't buy.
    ok?
      

  3.   

    我的本意是想试一下Bean有没有市场,各位java程序员、jsp程序员难道不想减少工作量
    避免无意义的重复吗?就拿这个发邮件的bean来说,调用时非常方便,就是众所周知的那几行代码,而主要的功能都封装在了bean里。卖了也方便,源代码不会泄漏。这个bean确实简单,
    但他起码代表了一种思想。如果各位都把自己平日里编写的bean拿这里来卖,那么大家就不会
    重复劳动了,还可以提高各位的工作效率,各位挣钱也方便,卖bean的挣了钱,买bean的挣了工资,甚至能长薪水。说不定能提高整个中国的软件开发水平呢?
      

  4.   


    部分同意ocry的观点。把大家写的bean来交流是可以减轻工作量,但是为什么不能考虑源码开发的方式呢?free bean ? ok?
      

  5.   

    You can download free email package from http://www.coolservlets.com/. Source is available. 
    Saving your 50 yuans.
      

  6.   

    市场定位错误!卖给非程序员是不是容易一些?HOHO在这么多高手云集的地方兜售程序,有点困难啊!
      

  7.   

    对了,哪天我女朋友的PDA上需要这个bean,我可能会买的。还有,怎么知道你的bean里面没有安全问题?涉及到个人隐私怎么办?商业用户不会冒风险买没有任何安全认证的软件的。这个东东你要考虑到。
      

  8.   

    sun公司站点下一个免费的javamail bean就什么都好了,功能绝对强大
      

  9.   

    http://www.china-java.net/beans_list.jsp?typeid=141
      

  10.   

    弄个程序员交流BEAN的平台好不好啊,这样对每个程序员都有利。
    把各自的版权信息封装在bean里也容易做到。不会影响到各自的利益。
    目前国内的计算机水平远落后于发达国家,正需要我们之间的合作才能进步啊。