Como mandar emails com uma interface grafica

9 respostas
Thiago_Ananias

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

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 removido]";
            String from = "[email removido]";
            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) {}

    }

}
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

9 Respostas

cassio

acho que falta o activation.jar no seu classpath

sunshine

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

Thiago_Ananias

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

deu o seguinte erro:

javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Unable to relay for [email removido]

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 = "[email removido]";
String from = "[email removido]";
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! :D

O
Thiago Ananias:
javax.mail.SendFailedException: Invalid Addresses; nested exception is: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Unable to relay for [email removido]
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 = "[email removido]";
            String from = "[email removido]";
            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());
        }

    }

}

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.

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?

Thiago_Ananias
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           = "[email removido]";
            String from         = "[email removido]";
            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());
        }

    }

}
Deu o mesmo erro :(
O

javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Unable to relay for [email removido]

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.

Thiago_Ananias

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

furutani

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

Criado 28 de novembro de 2006
Ultima resposta 1 de dez. de 2006
Respostas 9
Participantes 5