JavaMail

17 respostas
fzampa

Pessoal, estou trabalhando com beans e preciso enviar um e-mail.

Qual a melhor maneira de fazê-lo e como???

Estou com um exemplo que envia uma MimeMesage através da Classe Transport.

Isso é o JavaMail?

Alguém me dá uma luz, pelamordeDeus…

Obrigado.

17 Respostas

Rafael_Steil

Sim, eh javamail.

Tem um tutorial sobre isso no GUJ ate.

Rafael

fzampa

Session session = Session.getInstance(p, null);

Mas e se meu servidor utilizar autenticação, tipo yahoo??? O que vem no lugar do null?

Paulo_Silveira

Basta voce dar uma olhadinha na api:
http://java.sun.com/products/javamail/javadocs/

Ele recebe um Authentication, entao da um new num PasswordAuthentication e passa o login e senha.

fzampa

Bom, vamos lá, devagar a gente consegue, hehe.

“The class PasswordAuthentication is a data holder that is used by Authenticator”

Isso quer dizer que a Classe PasswordAuthentication apenas guarda os dados, né?

Bom, eu preciso mesmo é utilizar a Classe Authenticator, mas só consigo passar login e senha pra outra, a PasswordAuthentication. Aonde as duas “esbarram”? Como faço pra passar uma pra outra???

Obrigado.

fzampa

Bom pessoal, esse lance do PasswordAuthentication eu resolvi.

fiz o session.setPasswordAuthentication(…,…);

Eu nao to conseguindo é instanciar o Authenticator. Sei que ele é abstract, mas o que eu tenho que fazer qdo for assim??? Eu sempre me enrolo…

javax.mail.Authenticator auth = ???
javax.mail.Session session = javax.mail.Session.getInstance(prop,auth);

to sem saber o que fazer, socorro!!! :smiley:

Paulo_Silveira

PasswordAuthentication é uma Authentication. Por heranca/implementacao.

fzampa

Pessoall, mais uma dúvida, dessa vez cabulosa.

Fiz o programa pra mandar e-mails. Já está funcionando, obrigado pelas dicas.

Agora, utilizo uma conta do yahoo!.
Quando eu mudo a conta por outra conta válida ele para de funcionar, dá o erro:

javax.mail.SendFailedException: Sending failed;
  nested exception is: 
        javax.mail.AuthenticationFailedException

Se eu faço com a minha conta e senha dá certo. Se eu mudo para a conta e senha de outra pessoa (ambos corretos) pára de funcionar…

Já testei com outras 3 contas e não dá certo, help please!!!

_fs

Todas do yahoo?

fzampa

Sim, todas do yahoo!!! Isso é incrível… inexplicável!!!1 :?

Paulo_Silveira

Coloque a stacktrace inteira, junto com a message da exception. Mas se a stack fala que o erro eh de autenticacao, eh porque voce esta errando o login/senha.

fzampa

:frowning: Não, o interessante é que login e senha estão certos.

Tentei com 3 logins diferentes, todos corretos… nenhum funciona, só o meu pessoal.

Até no Outlook dá pau, isso é muito estranho, se alguem já viu isso, favor comente aqui…

Obrigado.

T

Agora já entendi.
Não sei se ainda é assim, mas no Yahoo somente algumas contas têm acesso SMTP/POP (normalmente você deve pagar alguma coisa por mês); outras só podem ser acessadas via Web. Nesse caso não vai funcionar no Outlook nem em nenhum lugar (se você pegar o Outlook Express pode até ver qual a mensagem de erro que o Yahoo mandou de volta para você.)
A sua conta é privilegiada (você deve pagar alguma coisa, não?) para ter acesso SMTP/POP.

Betinhum

fzampa:
:frowning: Não, o interessante é que login e senha estão certos.

Tentei com 3 logins diferentes, todos corretos… nenhum funciona, só o meu pessoal.

Até no Outlook dá pau, isso é muito estranho, se alguem já viu isso, favor comente aqui…

Obrigado.

No Yahoo não tem mais a necessidade de habilitar o acesso pop? Eu tive q habilitar para acessar pelo thunderbird.

“Opções do Yahoo! Mail”:
Acesso POP e Redirecionamento

Use o Yahoo! como seu endereço permanente de e-mail. Redirecione suas mensagens para outra conta de e-mail ou receba suas mensagens do Yahoo! em seu programa de e-mail POP3.

fzampa

Olha só, as 4 contas são realmentes iguais, todas grátis, todas @yahoo.com.br cadastradas no mesmo local e por dentro todas com a mesma configuração.

O lance do Pop não tem mto a ver nao pq na verdade só quero enviar pelo JavaMail e não vou receber, certo?

Eu quero é entender a diferença entre a que funciona e as outras… :wink:

Obrigado.

Betinhum

fzampa:
Olha só, as 4 contas são realmentes iguais, todas grátis, todas @yahoo.com.br cadastradas no mesmo local e por dentro todas com a mesma configuração.

O lance do Pop não tem mto a ver nao pq na verdade só quero enviar pelo JavaMail e não vou receber, certo?

Eu quero é entender a diferença entre a que funciona e as outras… :wink:

Obrigado.

Pô! É mesmo, vacilei. SMTP, não POP. Sendo assim não vejo erro no que vc está fazendo…

thiagoraposo

Estou com o mesmo problema no Yahoo…
Tava feliz lendo o histórico achando que no fim teria um solução mais ainda não né, continuarei tentando aqui… :frowning:

T

Como de costume, para resolver os problemas com Yahoo, GMail etc.
a) Primeiro use seu programa de email preferido (Outlook Express, Eudora, Netscape Messenger, Mozilla Thunderbird, etc.).
Configure direitinho para funcionar com a tal conta que dá problema.
Se não conseguir fazer funcionar de jeito nenhum (que é o caso das contas do Yahoo que mencionei no ano passado), não vai funcionar com o JavaMail. Simples.
b) Se conseguir fazer funcionar, anote as configurações, para configurar corretamente o seu programa no JavaMail. Talvez você precise de usar algum recurso avançado do JavaMail (por exemplo, o GMail requer SSL e o uso de umas portas esquisitas para SMTP e POP - portanto você precisa usar JDK 1.4.2_08 ou 5.0, a versão mais nova do JavaMail e configurar mais algumas coisas no seu programa - não dá para usar a receita de bolo que todo mundo usa. Você precisa ler a documentação direitinho.)

Criado 7 de novembro de 2004
Ultima resposta 10 de ago. de 2005
Respostas 17
Participantes 7