//e-mail SMTP [email protected] 是";  //正文
  protected String message_body="aaaaaaaaaaaaaaaaaaaaaaaaaa"+
  "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"+
  "ccccccccccccccccccccccccccccccccc"+"dddddddddddddddddddd";  //javamail Session对象
  protected Session session;  //java message对象
  protected Message mesg;
  //工作方法:发送邮件给smtp服务器
  public void doSend(){
   //java mail 允许处理许多的属性Properities
   Properties props=new Properties();   //LAN必须要将本地SMTP服务器设置为"mailhost"
   //呢度勿事好明白哦/什么来的?
   props.put("mail.smtp.host","smtp.163.net");
   props.put("mail.smtp.auth","true"); // smtp属性服务器是要验证的  
          // Setup authentication, get session
      // SMTPAuthenticator auth =new SMTPAuthenticator();
       //Session session = Session.getInstance(props, null);   session=Session.getDefaultInstance(props,null);
   session.setDebug(true);   try{
     //创建一个邮件
     mesg=new MimeMessage(session);     //From 来自Properties
    mesg.setFrom(new InternetAddress("[email protected]"));     //To 地址
     InternetAddress toAddress=new InternetAddress(message_recip);
     mesg.addRecipient(Message.RecipientType.TO,toAddress);     //cc地址
    //InternetAddress ccAddress=new InternetAddress(message_cc);
    // mesg.addRecipient(Message.RecipientType.CC,ccAddress);     //主题
   mesg.setSubject(message_subject);     //正文
     mesg.setText(message_body);     //发送邮件
    Transport transport = session.getTransport("smtp");
           transport.connect("smtp.163.net","madass","xinxin");//设置用户和密码
transport.sendMessage(mesg,mesg.getRecipients(Message.RecipientType.TO));
          //transport.send(mesg);     //Transport.send(mesg);
     //transport.sendMessage(mesg, mesg.getAllRecipients());
   }catch(Exception ex){  }
   }
  public static void main(String[] av){   Sender sm=new Sender();
   sm.doSend();
   }
  }

解决方案 »

  1.   

    记住要在下载好activation.jar和javaMail的api,我是把她们放在C:\j2sdk1.4.0_02\jre\lib\ext下的
    并且要在classpath添加上.;C:\j2sdk1.4.0_02\jre\lib\ext\mail.jar;C:\j2sdk1.4.0_02\jre\lib\ext\activation.jar;c:\j2sdk1.4.1_02\lib\tools.jar;c:\j2sdk1.4.1_02\lib\dt.jar
      

  2.   

    //不用javaMail发送邮件//这是用socket编的,最难的地方我觉得是验证的时候用户名和密码
    //必须是base64编码,上次上网找了蛮久才解决的,但是没有界面和附件,呵呵,这是我上次交
    //的作业来的 ,运行时 java smtp.163.net ***@***.com ,有哪位兄弟可以交我写匿名邮件
    //的,多谢:) 
    import java.net.*;
    import java.io.*;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;public class SmtpTalk {
        BufferedReader is;
        PrintStream os;
        private boolean debug=true;
        private String host;
        sun.misc.BASE64Encoder enc;
        private String user;
        private String psw;    
        public static void main(String[] argv){
         if(argv.length!=2){
         System.out.println("Usage:java SmtpTalk host user");
         System.exit(1);
         }
        
        
         try{
           SmtpTalk st=new SmtpTalk(argv[0]);
           System.out.println("Smtp Talker ready");
           
           st.converse("[email protected]",argv[1],"Test message",
                     "helo there");
         }catch(Exception ig){
         System.err.println(ig.getMessage());
         System.exit(1);
         }
        }
        

    SmtpTalk(String Server){
    host=Server;
     enc = new sun.misc.BASE64Encoder();
     user=new String("madass");
     psw=new String ("xinxin");



    try{
      Socket s=new Socket(host,25);
      is=new BufferedReader(new InputStreamReader(s.getInputStream()));
      os=new PrintStream(s.getOutputStream());
      }
     catch(NoRouteToHostException e){
      die(/*EX_TEMPFAIL*/1,"No route to host "+host);
      }
     catch(ConnectException e){
      die(/*EX_TEMPFAIL*/1,"Connection Refused by"+host);
      } 
     catch(UnknownHostException e){
      die(/*EX_NOHOST*/2,"Unknown host "+host);
      }
     catch(IOException e){
      die(/*EX_IOERR*/3,"I/O error setting up socket stream\n"+e);
      }  
    }


    protected void send_cmd (String cmd,String oprnd){
    send_cmd(cmd+" "+oprnd);
    }

    protected void send_cmd(String cmd){
    if(debug)
    System.out.println(">>>"+cmd);
    os.print(cmd+"\r\n");
    }

    public void send_text(String text){
    os.print(text+"\r\n");
    }

    protected boolean expect_reply(String rspNum) /*throw SMTPException*/{
         String s=null;
         try{
         s=is.readLine();
         }catch(IOException e){
          die(/*EX_IOERR*/3,"I/o error reading from host"+host+" "+e);
          }
         if(debug) System.out.println("<<<"+s);
         return s.startsWith(rspNum+" ");
               }
               
            
            protected void die(int ret,String msg)/* throw  SMTPException*/{
             //throw new SMTPException (ret,msg);
             }   
               
    public void converse(String sender,String recipients,String  subject,String body) /*throw SMTPException*/{
      
      if(!expect_reply("220")) die(/*EX_PROTOCOL*/4,"did not get SMTP greeting");
      
      send_cmd("HELO","[email protected]");
      if(!expect_reply("250")) die(/*EX_PROTOCOL*/4,"did not get ack our HELO");
      send_cmd("RSET");
      if(!expect_reply("250")) die (/*EX_PROTOCOL*/4,"not reset");
      
      send_cmd("AUTH LOGIN");
      if(!expect_reply("334")) die (/*EX_PROTOCOL*/4,"not reset");
      
      send_cmd(enc.encode(user.getBytes()));
      if(!expect_reply("334")) die (/*EX_PROTOCOL*/4,"not reset");
      
     send_cmd(enc.encode(psw.getBytes()));
      if(!expect_reply("334")) die (/*EX_PROTOCOL*/4,"not reset");
      
     
      
      send_cmd("MAIL","From:<"+sender+">");
      if(!expect_reply("250")) die (/*EX_PROTOCOL*/4,"did not ack our MAIL command");
      
      //StringTokenizer st=new StringTokenizer(recipients);
      //while(st.hasMoreTokens()){
       //String  r=st.nextToken();
       send_cmd("RCPT","To:<"+recipients+">");
       if(!expect_reply("250"))
          die(/*EX_PROTOCOL*/4,"did not ack RECP");
          //}
          
       send_cmd("DATA");
       if(!expect_reply("354")) die(/*EX_PROTOCOL*/4,"did not want our data");
       
       send_text("From: "+sender);
       send_text("To: "+recipients);
       send_text("Subject: "+subject);
       send_text("");
       send_text(body+"\r");
       
       send_cmd(".");
       if(!expect_reply("250")) die(/*EX_PROTOCOL*/4,"mail not accepted");
       
       send_cmd("QUIT");
       if(!expect_reply("221")) die(/*EX_PROTOCOL*/4,"Other end not closing down");
           
      
      }

    }