Autenticação usando Socket

1 resposta
B

Olá!

Estou fazendo uma conexão telnet em um smtp e necessita de autenticação, achei somente exemplos sem autenticação.

achei alguma coisa sobre a classe ProtectedClient client = new ProtectedClient();, mas não consegui implementar.

alguma luz?

Tks.

1 Resposta

B

Buenas galera do GUJ, se alguém estiver com o mesmo problema segue a dica:

Substituam as Strings:




e não é que funciona mesmo!

import java.net.*;
import java.io.*;

public class SocketTest {

 public static void main(String [] args) {

   SocketTest t = new SocketTest();
   t.sendMail("<SERVIDOR SMTP>", "<DESTINATÁRIO>");
 }

 public void sendMail(String mailServer, String recipient) {
   try {
      Socket s = new Socket(mailServer, 25);

      BufferedReader in = new BufferedReader
          (new InputStreamReader(s.getInputStream(), "8859_1"));
      BufferedWriter out = new BufferedWriter
          (new OutputStreamWriter(s.getOutputStream(), "8859_1"));

      send(in, out, "HELO " + mailServer);
      send(in, out, "auth login");
      send(in, out, "<USUÁRIO CRIPTOGRAFADO>");
      send(in, out, "<SENHA CRIPTOGRAFADO>");
      send(in, out, "MAIL FROM: <<REMETENTE>>");
      send(in, out, "RCPT TO: " + recipient);
      send(in, out, "DATA");
      send(out, "Subject: teste");
      send(out, "From: Recours <<REMETENTE>>");
      send (out, "\n");
      send(out, "Enviou!");
      send(out, "\n.\n");
      send(in, out, "QUIT");
      s.close();
   }
   catch (Exception e) {
      e.printStackTrace();
   }
 }

 public void send(BufferedReader in, BufferedWriter out, String s) {
   try {
      out.write(s + "\n");
      out.flush();
      System.out.println(s);
      s = in.readLine();
      System.out.println(s);
   }
   catch (Exception e) {
      e.printStackTrace();
   }
 }

 public void send(BufferedWriter out, String s) {
   try {
      out.write(s + "\n");
      out.flush();
      System.out.println(s);
   }
   catch (Exception e) {
      e.printStackTrace();
   }
 }
}

Abraços.

Criado 9 de agosto de 2010
Ultima resposta 9 de ago. de 2010
Respostas 1
Participantes 1