用base64,找java源码和我联系[email protected]

解决方案 »

  1.   

    Properties prop = new Properties();
    prop.setProperty("mail.transport.protocol","smtp");
    prop.setProperty("mail.smtp.host","smtp.sina.com.cn");//Sina的好像是这个地址吧
    prop.setProperty("mail.smtp.auth","true");Session session = Session.getInstance(prop,
                new Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication("YourUserNameInSina","YourPassword");
                    }
                });
     Transport trans = session.getTransport();
    //sendmessage,使用trans来传送,不要用静态方法
    trans.close();如果是其他smtp服务器你换一下上面得代码就行了
      

  2.   

    多谢qingbt
    能发到我邮箱里面嘛?[email protected]
      

  3.   

    to ChDw(米) Session  Transport这两个类是不是要到sun上面新下载啊?
      

  4.   

    if(authorization==true){
                if(!sendToServer("AUTH LOGIN"))
                  return;
                if(!responseFromServer("334",
                                       "未知错误,也许你的服务器不需要身份验证!"))
                  return;
                user=new BASE64Encoder().encode(user.getBytes());
                if(!sendToServer(user))
                  return;
                if(!responseFromServer("334",
                                       "注册失败,无效的用户名!"))
                  return;
                password=new BASE64Encoder().encode(password.getBytes());
                if(!sendToServer(password))
                  return;
                if(!responseFromServer("235",
                                       "注册失败,请检查你的用户名和密码!"))
                  return;
              }
    我自己做的smtp客户端的一部分代码
      

  5.   

    to TourWind(风)
    能不能再给全一点啊?
    谢谢!
      

  6.   

    //协议对话部分
    try{
              clientSocket=new Socket(host,port);          outToServer=
                  new DataOutputStream(
                     clientSocket.getOutputStream());
              inData=
                  new BufferedReader(
                     new InputStreamReader(clientSocket.getInputStream()));          if(!responseFromServer("220","无法解析主机"))
                return;
              if(!sendToServer("EHLO stmp.taohoo.com"))
                return;
              if(!responseFromServer("250","未知错误,请查看LOG!"))
                return;
              if(authorization==true){
                if(!sendToServer("AUTH LOGIN"))
                  return;
                if(!responseFromServer("334",
                                       "未知错误,也许你的服务器不需要身份验证!"))
                  return;
                user=new BASE64Encoder().encode(user.getBytes());
                if(!sendToServer(user))
                  return;
                if(!responseFromServer("334",
                                       "注册失败,无效的用户名!"))
                  return;
                password=new BASE64Encoder().encode(password.getBytes());
                if(!sendToServer(password))
                  return;
                if(!responseFromServer("235",
                                       "注册失败,请检查你的用户名和密码!"))
                  return;
              }
              if(!sendToServer("MAIL FROM:<"+mailfrom+">"))
                return;
              if(!responseFromServer("250","错误!可能你还没有注册,或者输入的发件人地址不正确"))
                return;
              if(!sendToServer("RCPT TO:<"+mailto+">"))
                return;
              if(!responseFromServer("25","错误!无效的发件人地址"))//回复应该是250或者251
                return;
              if(!sendToServer("DATA"))
                return;
              if(!responseFromServer("354","未知错误,请查看LOG!"))
                return;
              if(!sendToServer("To:"+mailto))
                   return;
              if(!sendToServer("From:"+mailfrom))
                   return;
              if(!sendToServer("Subject:"+subject))
                   return;
               if(!sendToServer(content))
                 return;
               String msgEnd=new String(String.valueOf("."));
               if(!sendToServer(msgEnd))
                 return;
               if(!responseFromServer("250","未知错误!"))
                return;
              if(!sendToServer("QUIT"))
                return;
              if(!responseFromServer("221","未知错误!"))
                return;
              inData.close();
              outToServer.close();
              clientSocket.close();
              JOptionPane.showMessageDialog(messageFrame,"邮件已成功发出!");
            }
            catch (UnknownHostException ex){
               JOptionPane.showMessageDialog(
                        messageFrame,ex.toString(),"Error",
                           JOptionPane.ERROR_MESSAGE);
            }
            catch (IOException ee){
              JOptionPane.showMessageDialog(
                  messageFrame,ee.toString(),"Error",
                     JOptionPane.ERROR_MESSAGE);
            }
            finally{
              try{
                clientSocket.close();
                messageFrame.addMessageToMessageFrame("连接断开");
              }
              catch(IOException ioe){
                JOptionPane.showMessageDialog(
                  messageFrame,ioe.toString(),"Error",
                     JOptionPane.ERROR_MESSAGE);
                messageFrame.addMessageToMessageFrame("连接断开");
              }
            }这是协议对话部分
    //服务器的反应,
        boolean responseFromServer(String cmd,String errorMessage){
          String responseSentence;
          try {
            responseSentence = new String(inData.readLine());
            if (!responseSentence.startsWith(cmd)) {
              return false;
            }
          }
          catch (IOException ioex) {
            return false;
          }    while(responseSentence.startsWith("-",3)){
                try{
                  responseSentence = new String(inData.readLine());            }
                catch(IOException ioeX){
                       return false;
                }          }
              return true;
        }//向服务器发送一个命令
      boolean sendToServer(String msg){
       try{
         outToServer.writeBytes(msg+'\r'+'\n');
       }
       catch(IOException ioex){
          return false;
       }
       return true;
      }}