Cliente SMTP com anexo

4 respostas
R

Olá pessoal!!

Eu estou desenvolvendo um trabalho pra faculdade no qual tenho que implementar em java um cliente SMTP. Em outro tópico deste fórum algumas pessoas já me ajudaram a fazê-lo. O problema agora é que o professor resolveu complicar e quer que o cliente tbm mande um anexo junto ao email principal e eu não sei como fazer isso usando o protocolo SMTP.
Gostaria que alguém me ajudasse.
Desde já agradeço. :smiley:

4 Respostas

L

Esta thread acho q pode te ajudar:

http://www.javafree.org/javabb/viewtopic.jbb?t=3982

R

Estou estranhando um pouco o exemplo que vc me sugeriu porque como disse estou utilizando o protocolo SMTP.

L

E o exemplo que eu te mandei usa qual protocolo?

R

:oops: Tá foi mal! Eu disse que estranhei porque meu código está mais parecido com esse (que foi o exemplo que me deram em outro tópico):

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

class smtpCliente {

public static void main( String args[] ) {

Socket s = null;

DataInputStream sIn = null;

DataOutputStream sOut = null;
// Abrimos una conexión con breogan en el puerto 25
    // que es el correspondiente al protocolo smtp, e intentamos
    // abrir los streams de entrada y salida
    try {
        s = new Socket( "breogan",25 );
        sIn = new DataInputStream( s.getInputStream() );
        sOut = new DataOutputStream( s.getOutputStream() );
    } catch( UnknownHostException e ) {
        System.out.println( "No conozco el host" );
    } catch( IOException e ) {
        System.out.println( e );
        }

    // Si todo está inicializado correctamente, vamos a escribir
    // algunos datos en el canal de salida que se ha establecido
    // con el puerto del protocolo smtp del servidor
    if( s != null && sIn != null && sOut != null )
        {
        try {
            // Tenemos que respetar la especificación SMTP dada en
            // RFC1822/3, de forma que lo que va en mayúsculas
            // antes de los dos puntos tiene un significado especial
            // en el protocolo
            sOut.writeBytes( "MAIL From: [email removido]\n" );
            sOut.writeBytes( "RCPT To: [email removido]\n" );
            sOut.writeBytes( "DATA\n" );
            sOut.writeBytes( "From: [email removido]\n" );
            sOut.writeBytes( "Subject: Pruebas\n" );
            // Ahora el cuerpo del mensaje
            sOut.writeBytes( "Hola, desde el Tutorial de Java\n" );
            sOut.writeBytes( "\n.\n" );

            // Nos quedamos a la espera de recibir el "Ok" del
            // servidor para saber que ha recibido el mensaje
            // correctamente, momento en el cual cortamos
            String respuesta;
            while( ( respuesta = sIn.readLine() ) != null )
                {
                System.out.println( "Servidor: "+respuesta );
                if( respuesta.indexOf( "Ok" ) != -1 )
                    break;
                }

            // Cerramos todo lo que hemos abierto
            sOut.close();
            sIn.close();
            s.close();
          } catch( UnknownHostException e ) {
            System.out.println( "Intentando conectar: "+e );
        } catch( IOException e ) {
            System.out.println( e );
            }
        }
    }
}
Criado 13 de maio de 2007
Ultima resposta 13 de mai. de 2007
Respostas 4
Participantes 2