Problemas para enviar email

27 respostas
B

Pessoal tenho este cod para enviar email, mas ta dando erro.
é so complilar pra ver.

public class TesteEmail{
	Properties props = new Properties();
	props.put("mail.host", "smtp2.locaweb.com.br");
	
	Session session = Session.getInstance(p, null);
	MimeMessage msg = new MimeMessage(session);

	try {
	    // "de" e "para"!!
	    msg.setFrom(new InternetAddress("[email removido]"));
	    msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email removido]"));
	
	    // nao esqueca da data!
	    // ou ira 31/12/1969 !!!
	    msg.setSentDate(new Date());
	
	    msg.setSubject("assunto da mensagem");
	
	    msg.setText("corpo da mensagem");
	
	    // evniando mensagem (tentando)
	    Transport.send(msg);
	}
	catch (AddressException e) {
	    // nunca deixe catches vazios!
	    System.out.println("erro1");
	}
	catch (MessagingException e) {
	    // nunca deixe catches vazios!
	    System.out.println("erro2");
	}
}

27 Respostas

M

Já vi que tu não importou as classes necessárias.

G
"Brito_Developer":
Pessoal tenho este cod para enviar email, mas ta dando erro. é so complilar pra ver.
public class TesteEmail{
	Properties props = new Properties();
	props.put("mail.host", "smtp2.locaweb.com.br");
	
	Session session = Session.getInstance(p, null);
	MimeMessage msg = new MimeMessage(session);

	try {
	    // "de" e "para"!!
	    msg.setFrom(new InternetAddress("[email removido]"));
	    msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email removido]"));
	
	    // nao esqueca da data!
	    // ou ira 31/12/1969 !!!
	    msg.setSentDate(new Date());
	
	    msg.setSubject("assunto da mensagem");
	
	    msg.setText("corpo da mensagem");
	
	    // evniando mensagem (tentando)
	    Transport.send(msg);
	}
	catch (AddressException e) {
	    // nunca deixe catches vazios!
	    System.out.println("erro1");
	}
	catch (MessagingException e) {
	    // nunca deixe catches vazios!
	    System.out.println("erro2");
	}
}

Consta no seu classpath os jar do javamail e do activation ???

 :wink:
B

Ops …
Importei sim!

import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
B

Consta no seu classpath os jar do javamail e do activation ???
A biblioteca da aplicacao esta no path, isto nao basta?

A

qual o erro?

B

ele aponta o erro nesta linha:

props.put(“mail.host”, “smtp2.locaweb.com.br”);

… falta o indentificador …

A

isso vai no construtor da classe???
não tem nenhum método…

B

Pessoal será que alguem poderia tester este codigo? (Esta completo)

A

Brito,

seu código está com problemas, vc declarou a clase, e não declarou nenhum método dentro da classe, e já colocou os códigos…
vc tem q colocar os códigos dentro de algum método, tipo assim:

public class TesteEmail{ public static void main(String[] args){ Properties props = new Properties(); props.put("mail.host", "smtp2.locaweb.com.br"); //continua seu código aki embaixo ... ... ... ... catch (MessagingException e) { // nunca deixe catches vazios! System.out.println("erro2"); } } }

[]s

B

xiii … verdade eim.
Agora compilou tudo bonitinho!!!
mas esta caindo numa execption

catch (MessagingException e) {
    // nunca deixe catches vazios!
        System.out.println("erro2");

O que esta acontecendo?
Colocando o metodo main eu posso executar esta classe de qualquer lugar ne?
Não preciso estar em ambiente web ne?

A

coloca dentro do catch:

e.printStackTrace();

e posta aki o erro q está dando.

[]s

B

Certo.
Aquele comando deu um print no erro.
O erro acontece de acordo com o servidor de emails que eu coloco. Existe algum tipo de configuração que muda de servidor para servidor?
Os parametros sao os mesmos sempre? Eu tenho um email aqui que envia mas os outros nao enviam.

A

existem servidores de email que requerem autenticação…

posta o erro q fica mais fácil …

B

Este é o erro:
O caso é que com outro servidor ele envia.

javax.mail.SendFailedException: Sending failed;
  nested exception is:
        class javax.mail.MessagingException: Could not connect to SMTP host: pop
3.uol.com.br, port: 25;
  nested exception is:
        java.net.ConnectException: Connection timed out: connect
        at javax.mail.Transport.send0(Transport.java:218)
        at javax.mail.Transport.send(Transport.java:80)
        at TesteEmail.main(TesteEmail.java:29)
erro2
Press any key to continue...
B

Pessoal como eu envio um email com autenticação de segurança.
Como faço para conectar ao servidor de SMTP passando o usuario e a senha?

G
"Brito_Developer":
Pessoal como eu envio um email com autenticação de segurança. Como faço para conectar ao servidor de SMTP passando o usuario e a senha?

Classe de autenticação:

public class Autenticador extends Authenticator {

  public PasswordAuthentication getPasswordAuthentication() {
    String username, password;


    return new PasswordAuthentication(username, password);
  }

}

e para autenticar:

Authenticator auth = new Autenticador ();
Session session = Session.getDefaultInstance(props, auth);

:wink:

B

Deu erro:

javax.mail.SendFailedException: Sending failed;
  nested exception is:
        class javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
        class javax.mail.SendFailedException: 554 <200-168-46-27.dsl.telesp.net.
br[200.168.46.27]>: Client host rejected: Access denied

        at javax.mail.Transport.send0(Transport.java:218)
        at javax.mail.Transport.send(Transport.java:80)
        at TesteEmail.main(TesteEmail.java:45)
erro2
Press any key to continue...

o endereco de email, o smtp e a senha estão corretos.
Falta alguma coisa[/code]

G

“Brito_Developer”:
Deu erro:

javax.mail.SendFailedException: Sending failed;
  nested exception is:
        class javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
        class javax.mail.SendFailedException: 554 <200-168-46-27.dsl.telesp.net.
br[200.168.46.27]>: Client host rejected: Access denied

        at javax.mail.Transport.send0(Transport.java:218)
        at javax.mail.Transport.send(Transport.java:80)
        at TesteEmail.main(TesteEmail.java:45)
erro2
Press any key to continue...

o endereco de email, o smtp e a senha estão corretos.
Falta alguma coisa[/code]

Parece que você colocou um Invalid Addresses…
Dê uma verificada no email do destinatário ou remetente…

:wink:

B

Entao cara o caso é que ja verifiquei e ate troquei varias vezes e o erro persiste.

G

Eu estava com esse erro, a causa era: o endereço não estava sendo passado…ou seja estava vindo null…

:wink:

G

Humm… você está testando esse envio em um FTP ?
Tem um firewall aí, ele pode estar bloqueando !

:wink:

B

Ftp???
nao cara.
O cod esta certo, pois, eu tenho um email que envia. O caso é que com um eu envio e com outros nao.

B

Olha so outro erro que deu:

javax.mail.SendFailedException: Sending failed;
  nested exception is:
        class javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
        class javax.mail.SendFailedException: 553 UTILIZE A AUTENTICACAO PARA EN
VIO DE MENSAGENS/THIS SERVER IS TO BE USED WITH AUTHENTICATION (#5.7.1)

        at javax.mail.Transport.send0(Transport.java:218)
        at javax.mail.Transport.send(Transport.java:80)
        at TesteEmail.main(TesteEmail.java:44)
erro2
Press any key to continue...

Ta pedindo para autenticar o servidor.

G

“Brito_Developer”:
Olha so outro erro que deu:

javax.mail.SendFailedException: Sending failed;
  nested exception is:
        class javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
        class javax.mail.SendFailedException: 553 UTILIZE A AUTENTICACAO PARA EN
VIO DE MENSAGENS/THIS SERVER IS TO BE USED WITH AUTHENTICATION (#5.7.1)

        at javax.mail.Transport.send0(Transport.java:218)
        at javax.mail.Transport.send(Transport.java:80)
        at TesteEmail.main(TesteEmail.java:44)
erro2
Press any key to continue...

Ta pedindo para autenticar o servidor.

Bom… eu já te passei o código da autenticação, mas se o erro persiste é porque pode haver erro no código:

“JavaMail”:
Authenticator
Like the java.net classes, the JavaMail API can take advantage of an Authenticator to access protected resources via a username and password. For the JavaMail API, that resource is the mail server. The JavaMail Authenticator is found in the javax.mail package and is different from the java.net class of the same name. The two don’t share the same Authenticator as the JavaMail API works with Java 1.1, which didn’t have the java.net variety.

To use the Authenticator, you subclass the abstract class and return a PasswordAuthentication instance from the getPasswordAuthentication() method. You must register the Authenticator with the session when created. Then, your Authenticator will be notified when authentication is necessary. You could popup a window or read the username and password from a configuration file (though if not encrypted it is not secure), returning them to the caller as a PasswordAuthentication object.

Properties props = new Properties();

// fill props with any information

Authenticator auth = new MyAuthenticator();

Session session = Session.getDefaultInstance(props, auth);

:wink:

B

Cara desta meneira ele nao esta autenticando.
Me disseram alguma coisa sobre conectar - checar login e senha. E enviar .
Nao parece ser desta maneira nao.

B

é tipo um webmail eu acho.
Eu conecto com login e senha e depois eu envio.

A

Eu fiz um modelo parecido com o acima e ta me apresentando este erro
entao gostaria de saber se alguem sabe porque que esta apresentando
este erro, e como solucionar ele.

erro2Invalid Addresses;
nested exception is:
class com.sun.mail.smtp.SMTPAddressFailedException: 559 <unknown[10.26.4.63]>: Client host rejected: Not logged in - Usuario nao logado


Abraços a todos

Criado 20 de julho de 2005
Ultima resposta 28 de mar. de 2006
Respostas 27
Participantes 5