Como mandar emails com uma interface grafica

Fala pessoal, estou tentando mandar um email via um programa Desktop… tenho o seguinte codigo

[code]import javax.mail.;
import javax.mail.internet.
;
import java.util.Date;
import java.util.Properties;

public class Default {

public static void main(String args[]) {

    try {

        String to = "email@hotmail.com";
        String from = "teste@dominio.com.br";
        Properties props = new Properties();
        props.put("mail.smtp.host", "localhost");
        Session session = Session.getInstance(props, null);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        Address toAddress = new InternetAddress(to);
        message.addRecipient(Message.RecipientType.TO, toAddress);
        message.setSubject("teste de envio de e-mails");
        message.setContent("este eh um teste de envio", "text/plain");
        Transport.send(message);

    }

    catch (MessagingException e) {}

}

}
[/code] Como faço? ele da o seguinte erro: Exception in thread “main” java.lang.NoClassDefFoundError: javax/activation/DataSource
at Default.main(Default.java:17)
Java Result: 1

valew

acho que falta o activation.jar no seu classpath

se vc já possuir o Java EE 5 SDK instalado em sua máquina coloque o activation.jar no classpath,

caso contrário baixe-o aqui

BELEZA pessoal, eu instalei o J2EE e coloquei o activation.jar no classpath mas agora deu outro erro! e eu naum sei oq colocar :frowning:

deu o seguinte erro:

[quote]javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Unable to relay for thiagoananias@hotmail.com
[/quote]

Meu codigo esta assim:
[/code]import javax.mail.;
import javax.swing.JOptionPane;
import javax.mail.internet.
;
import java.util.Date;
import java.util.Properties;

public class Default {

public static void main(String args[]) {

    try {

        String to = "thiagoananias@hotmail.com";
        String from = "thiagoananias@hotmail.com.br";
        Properties props = new Properties();
        props.put("smtp.pescaalternativa.com.br", "localhost");
        Session session = Session.getInstance(props, null);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        Address toAddress = new InternetAddress(to);
        message.addRecipient(Message.RecipientType.TO, toAddress);
        message.setSubject("teste de envio de e-mails");
        message.setContent("este eh um teste de envio", "text/plain");
        Transport.send(message);

        JOptionPane.showMessageDialog(null, "ae!");

    }

    catch (MessagingException e) {
        System.out.println(e.toString());
    }

}

}[code]
Obrigado por enquanto! :smiley:

[quote=Thiago Ananias][quote]javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Unable to relay for thiagoananias@hotmail.com[/quote]

[code]import javax.mail.;
import javax.swing.JOptionPane;
import javax.mail.internet.
;
import java.util.Date;
import java.util.Properties;

public class Default {

public static void main(String args[]) {

    try {

        String to = "thiagoananias@hotmail.com";
        String from = "thiagoananias@hotmail.com.br";
        Properties props = new Properties();
        props.put("smtp.pescaalternativa.com.br", "localhost");
        Session session = Session.getInstance(props, null);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        Address toAddress = new InternetAddress(to);
        message.addRecipient(Message.RecipientType.TO, toAddress);
        message.setSubject("teste de envio de e-mails");
        message.setContent("este eh um teste de envio", "text/plain");
        Transport.send(message);

        JOptionPane.showMessageDialog(null, "ae!");

    }

    catch (MessagingException e) {
        System.out.println(e.toString());
    }

}

}[/code][/quote]

Este SMTP server (smtp.pescaalternativa.com.br) não permite que a sua maquina faça relay para enviar e-mail. Peça para o administrador deste SMTP Server liberar o relay para a sua maquina, ou rode o seu programa em uma maquina que tenha permissão.

Falei besteira: com o codigo abaixo

props.put("smtp.pescaalternativa.com.br", "localhost");

o que está sendo feito é setar a property smtp.pescaalternativa.com.br com o valor localhost.

O certo é como estava acima:

props.put("mail.smtp.host", "localhost");

Assim o javamail usa o localhost como SMTP server. É isto mesmo que você quer fazer?

[code]import javax.mail.;
import javax.swing.JOptionPane;
import javax.mail.internet.
;
import java.util.Date;
import java.util.Properties;

public class Default {

public static void main(String args[]) {

    try {

        String to           = "thiagoananias@hotmail.com";
        String from         = "thiago@allfishing.com.br";
        Properties props    = new Properties();
        props.put("mail.smtp.host", "localhost");
        Session session     = Session.getInstance(props, null);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        Address toAddress   = new InternetAddress(to);
        message.addRecipient(Message.RecipientType.TO, toAddress);
        message.setSubject("teste de envio de e-mails");
        message.setContent("este eh um teste de envio", "text/plain");
        Transport.send(message);

        JOptionPane.showMessageDialog(null, "ae!");

    }

    catch (MessagingException e) {
        System.out.println(e.toString());
    }

}

}[/code] Deu o mesmo erro :frowning:

[quote]javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Unable to relay for thiagoananias@hotmail.com
[/quote]

Se o erro continua este é porque o SMTP server (no seu caso localhost) não está permitindo que esta maquina envie e-mail (o que é estranho) ou existe alguma regra não permitindo enviar ou para o dominio especificado (hotmail.com) ou até para o e-mail especificado. Que tipo é o SMTP Server? (sendmail, qmail, etc). Verifique com o administrador deste servidor.

pode ser que ele requer uma autenticação… como eu faço isso? tipow entrar com uma conte de email? vlw :wink:

Para enviar email que necessitem de autenticação SMTP dá uma olhada aqui
Esse mesmo erro dava comigo usando o sql server.