Porque nao consigo enviar emails para hotmail com java.mail?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
dir
Thread.start()

Membro desde: 23/08/2006 21:06:27
Mensagens: 35
Offline

Boas. Eu fiz um programa simples para enviar emails pelo localhost, com a 'ajuda' de um servidor local SMTP.

Quando eu envio para a minha conta de email sapo.pt (uma empresa de Portugal para quem nao souber) tudo corre as mil maravilhas e eu recebo o email.

Porem, quando tento enviar para a minha outra conta do Hotmail nao funciona e da-me este erro:

com.sun.mail.smtp.SMTPSendFailedException: 550 Invalid recipient: xxxxxx@hotmail.com

O servidor local de SMTP, por sua vez, recebe um erro e nao envia nada.


Aqui esta o codigo do meu programa:



Podem-me ajudar?
rockstorm
Virtual Machine Man
[Avatar]

Membro desde: 28/09/2004 08:37:10
Mensagens: 522
Localização: SBC
Offline

Boa tarde,

Voce pode tentar duas coisas....Fazer com autenticação usando Authenticator



Classe:


E pode tentar colocar a porta SMTP:


Tenta ai.....
[ICQ]
mchiareli
JavaEvangelist
[Avatar]

Membro desde: 04/04/2006 15:14:50
Mensagens: 397
Offline

acho que é pq seu ip não bate com o dns cadastrado na fapesp para o dominio do email que vc está tentando enviar....

alguns servidores validam isso outros não....

codifica.wordpress.com
[WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Conectar-se a um servidor de email em "localhost" indica que sua máquina tem um programa que faz "relay" de email, como o Microsoft SMTP Service.
Os servidores de email corporativos normalmente recusam emails que foram enviados dessa maneira, via "relay".
(Relay em inglês quer dizer que está sendo feito um "revezamento" - isso era muito comum nos dias mais antigos do email, em que as conexões entre servidores eram feitas por modems muito lentos.

O que ocorria antigamente, naqueles tempos da vovozinha:
- Eu tinha uma conta thingol@guj.com.br
- Eu quero mandar um email para kafka@franz.com
- Como o servidor guj.com.br e o franz.com não estão conectados à Internet, mas sim indiretamente via modems, é necessário especificar o caminho que a mensagem deve fazer.
Digamos que guj.com.br tenha uma ligação via modem para fapesp.br, e fapesp.br tenha uma ligação via modem para harvard.edu, e harvard.edu tenha uma ligação para franz.com.
Eu teria de especificar o email como:
kafka!fapesp.br!harvard.edu@franz.com --> note a rota que a mensagem tem de fazer, especificada no endereço!
e enviaria o email usando um servidor do guj.com.br, que iria se comunicar com fapesp.br e pôr isso no servidor de email da fapesp.br, onde ele iria ficar acumulado até que conseguisse se conectar com harvard.edu. Aí o harvard.edu, quando tiver tempo, vai conectar-se com o franz.com, para finalmente mandar a mensagem. Que coisa!
Hoje em dia é possível, pela Internet, comunicar-se diretamente com franz.com, e todo esse esquema de "relay" não é mais necessário, e é até perigoso.


Você deve especificar um servidor de email válido.
Se você tem uma conta do sapo.pt, então deve especificar o servidor de SMTP do sapo.pt por exemplo.
[WWW]
dir
Thread.start()

Membro desde: 23/08/2006 21:06:27
Mensagens: 35
Offline

Se você tem uma conta do sapo.pt, então deve especificar o servidor de SMTP do sapo.pt por exemplo.


Como faço isso? Isso nao implicaria ter de usar um email meu registado do sapo.pt para aparecer como sendo o remetente da mensagem que enviei?

É que eu precisamente queria poder usar emails com nomes quaisquer, assim como esta no codigo que postei, por exemplo olatodos@oladeus.com.


Se calhar percebi mal, é que comecei a experimentar isto hoje e ainda estou um bocado à toa com os protocolos todos..

P.S.: Também nao percebi bem o que é que o Rockstorm diz que é suposto fazer. Desculpem a ignorancia
aleck
GUJ Ranger
[Avatar]

Membro desde: 27/03/2006 08:08:33
Mensagens: 843
Localização: Rio de Janeiro
Offline

Você deve especificar um smtp válido, no seu caso smtp.sapo.pt e também especificar o usuário e senha para autenticar no servidor smtp do sapo.

Os servidores de envio(SMTP) na sua maioria exigem uma autenticação para que você o utilize. Coloque seu email e senha de email que vai funcionar.

Nosso colega postou o código mastigado acima, aproveite.

Ps: Não resisti de usar a nova tag code do GUJ


import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;




[]'s

Desenvolvedor iOS/Android
http://blog.alexandresoli.com.br
@alexandresoli
[WWW] [MSN]
dir
Thread.start()

Membro desde: 23/08/2006 21:06:27
Mensagens: 35
Offline

Ok. Vou fazer isso.

Mas fazendo isso ja nao da para escolher uma email remetente aleatorio como tinha no meu codigo (neste caso 'olatodos@oladeus.com'), ou da?

Obrigado pelas vossas respostas, têm me ajudado em forca nisto.
aleck
GUJ Ranger
[Avatar]

Membro desde: 27/03/2006 08:08:33
Mensagens: 843
Localização: Rio de Janeiro
Offline

Não, para fazer o que vc quer procure por servidores SMTP que aceitem enviar mensagens sem autenticação, a implementação de autenticação nos servidores SMTP foi criada exatamente para evitar o que vc quer fazer.

[]'s

Desenvolvedor iOS/Android
http://blog.alexandresoli.com.br
@alexandresoli
[WWW] [MSN]
dir
Thread.start()

Membro desde: 23/08/2006 21:06:27
Mensagens: 35
Offline

Ok. alterei o meu codigo para ficar com isto da autenticação mas agora da-me o seguinte erro:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.sapo.pt, port: 2525;
nested exception is:
java.net.ConnectException: Connection timed out: connect


o codigo é o seguinte:



O que é que está mal e o que é que é preciso adicionar??

Mais uma vez obrigado pela ajuda que estao a dar.
Roger--
JavaGuru

Membro desde: 16/05/2005 14:31:36
Mensagens: 205
Localização: São Bernardo do Campo/SP
Offline

Olá, dei uma pesquisa e de acordo com esta tela de ajuda http://ajuda.sapo.pt/comunicacao/email/utilizacao_do_servico/Utiliza_o_via_POP3_Outlook_E.html, acredito que o smtp do Sapo use a porta padrão. Resumindo, tente trocar a linha:

p.put("mail.smtp.port", "2525");

por:

p.put("mail.smtp.port", "25");

A exception que postou, diz que ele não conseguiu conectar (provavelmente a porta 2525).

boa sorte.

Roger Leite

Você sofre com Waterfall !?! Eu também. Veja dicas aqui 1up4developers
[WWW] [MSN]
dir
Thread.start()

Membro desde: 23/08/2006 21:06:27
Mensagens: 35
Offline

Não posso fazer isso porque o meu Local Relay SMTP Server diz me que existe outro programa qualquer a usar essa porta e por isso não pode usa-la... como eu eu nao sei qual e o tal programa nao posso desliga lo por isso usei esta porta alternativa...

De qualquer forma antes eu conseguia enviar emails para a conta do sapo.pt. Agora, desde que fiz estas alteracoes da autenticação, já nao da...
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team