[RESOLVIDO] Enviar/Receber Email Android - Api JavaMail
8 respostas
L
leandrooooo
Fala rapaziada,
Problemas para receber/enviar email na minha app em android estou usando a api JavaMail.
São duas classes separadas uma para enviar e outra para receber que instancio em eventos em dois botões na minha main.
O erro é que não encontrou as classes da api JavaMai,l detalhe, os jars estão no projeto, alguém já passou por isso?
O que pode estar acontecendo?
ps: Em um projeto Java ambas funcionam perfeitamente.
Como você está tentando enviar? Você sabe que não é possível executar operações de rede pela Thread principal? (Você precisa usar uma AsyncTask pra isso.)
L
leandrooooo
Até então ainda não utilizei thread ou AsyncTask. Apenas um metodo que chamo no onClick do botão.
Apenas testes para verificar se envio ou recebo email, depois ia estar melhorando o código e tratando as exceções.
Estou fazendo errado? tenho que utlizar uma AsyncTask?
Ataxexe
leandrooooo:
Até então ainda não utilizei thread ou AsyncTask. Apenas um metodo que chamo no onClick do botão.
Apenas testes para verificar se envio ou recebo email, depois ia estar melhorando o código e tratando as exceções.
Estou fazendo errado? tenho que utlizar uma AsyncTask?
Você precisa usar uma AsyncTask. O Android não permite operações de rede na Thread principal do app.
Ataxexe, entendi e tentei fazer mais não está dando certo.
Na Activity criar a classe enviarEmail que extends AsyncTask e no metodo doInBackground estou executando a classe que enviar o e-mail, mais esta acontecendo erros. Vou postar a classe que envia e-mail e o LogCat. Se puder, me ajudar! Obrigado.
09-09 17:12:33.636: E/AsyncTask(16361): onPreExecute
09-09 17:12:33.644: E/AsyncTask(16361): doInBackground
09-09 17:12:33.644: W/dalvikvm(16361): Unable to resolve superclass of Lbr/com/afv/auxiliares/EnviaEmails$Autenticador; (370)
09-09 17:12:33.644: W/dalvikvm(16361): Link of class 'Lbr/com/afv/auxiliares/EnviaEmails$Autenticador;' failed
09-09 17:12:33.644: E/dalvikvm(16361): Could not find class 'br.com.afv.jndistribuidora.auxiliares.EnviaEmails$Autenticador', referenced from method br.com.afv.jndistribuidora.auxiliares.EnviaEmails.enviarEmailPedidosAberto
09-09 17:12:33.644: W/dalvikvm(16361): VFY: unable to resolve new-instance 219 (Lbr/com/afv/auxiliares/EnviaEmails$Autenticador;) in Lbr/com/afv/auxiliares/EnviaEmails;
09-09 17:12:33.644: D/dalvikvm(16361): VFY: replacing opcode 0x22 at 0x0011
09-09 17:12:33.644: W/dalvikvm(16361): Unable to resolve superclass of Lbr/com/afv/auxiliares/EnviaEmails$Autenticador; (370)
09-09 17:12:33.644: W/dalvikvm(16361): Link of class 'Lbr/com/afv/auxiliares/EnviaEmails$Autenticador;' failed
09-09 17:12:33.651: D/dalvikvm(16361): DexOpt: unable to opt direct call 0x0330 at 0x13 in Lbr/com/afv/auxiliares/EnviaEmails;.enviarEmailPedidosAberto
09-09 17:12:33.651: D/dalvikvm(16361): DexOpt: unable to opt direct call 0x073d at 0x1c in Lbr/com/afv/auxiliares/EnviaEmails;.enviarEmailPedidosAberto
09-09 17:12:33.651: D/dalvikvm(16361): DexOpt: unable to opt direct call 0x0738 at 0x21 in Lbr/com/afv/auxiliares/EnviaEmails;.enviarEmailPedidosAberto
09-09 17:12:33.651: I/dalvikvm(16361): DexOpt: unable to optimize static field ref 0x057f at 0x27 in Lbr/com/afv/auxiliares/EnviaEmails;.enviarEmailPedidosAberto
09-09 17:12:33.651: D/dalvikvm(16361): DexOpt: unable to opt direct call 0x0738 at 0x2b in Lbr/com/afv/auxiliares/EnviaEmails;.enviarEmailPedidosAberto
09-09 17:12:33.651: D/dalvikvm(16361): DexOpt: unable to opt direct call 0x073b at 0x40 in Lbr/com/afv/auxiliares/EnviaEmails;.enviarEmailPedidosAberto
09-09 17:12:33.651: D/dalvikvm(16361): DexOpt: unable to opt direct call 0x0745 at 0x4c in Lbr/com/afv/auxiliares/EnviaEmails;.enviarEmailPedidosAberto
09-09 17:12:33.651: W/dalvikvm(16361): threadid=12: thread exiting with uncaught exception (group=0x40bcd1f8)
09-09 17:12:33.651: E/AndroidRuntime(16361): FATAL EXCEPTION: AsyncTask #1
09-09 17:12:33.651: E/AndroidRuntime(16361): java.lang.RuntimeException: An error occured while executing doInBackground()
09-09 17:12:33.651: E/AndroidRuntime(16361): at android.os.AsyncTask$3.done(AsyncTask.java:278)
09-09 17:12:33.651: E/AndroidRuntime(16361): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
09-09 17:12:33.651: E/AndroidRuntime(16361): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
09-09 17:12:33.651: E/AndroidRuntime(16361): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
09-09 17:12:33.651: E/AndroidRuntime(16361): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
09-09 17:12:33.651: E/AndroidRuntime(16361): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
09-09 17:12:33.651: E/AndroidRuntime(16361): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
09-09 17:12:33.651: E/AndroidRuntime(16361): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
09-09 17:12:33.651: E/AndroidRuntime(16361): at java.lang.Thread.run(Thread.java:856)
09-09 17:12:33.651: E/AndroidRuntime(16361): Caused by: java.lang.NoClassDefFoundError: br.com.afv.jndistribuidora.auxiliares.EnviaEmails$Autenticador
09-09 17:12:33.651: E/AndroidRuntime(16361): at br.com.afv.jndistribuidora.auxiliares.EnviaEmails.enviarEmailPedidosAberto(EnviaEmails.java:30)
09-09 17:12:33.651: E/AndroidRuntime(16361): at br.com.afv.jndistribuidora.activity.EmailActivity$LongOperation.doInBackground(EmailActivity.java:104)
09-09 17:12:33.651: E/AndroidRuntime(16361): at br.com.afv.jndistribuidora.activity.EmailActivity$LongOperation.doInBackground(EmailActivity.java:1)
09-09 17:12:33.651: E/AndroidRuntime(16361): at android.os.AsyncTask$2.call(AsyncTask.java:264)
09-09 17:12:33.651: E/AndroidRuntime(16361): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
09-09 17:12:33.651: E/AndroidRuntime(16361): ... 5 more
09-09 17:12:40.136: D/OpenGLRenderer(16361): Flushing caches (mode 0)
Valew.
Leandrooooo
L
leandrooooo
Ninguém???
Tô achando que o problemas está na libs (jars) na javamail, pois, não está encontrando a classes.
Ninguém passou por isso?
Leandrooooo
L
leandrooooo
Galera, bom dia,
Consegui dar mais um passo, estava add todos os jar do java mail no projeto android. Ai dava o erro acima.
Agora estou com outro problema, esse erro acontece na hora de transport.send()/transport.sendMessage(), peço a ajuda de vocês.
Segue a msg de erro no logcat.
Acredito que isso está acontecendo porque o JavaMail não encontrou o arquivo de configuração. Veja se os arquivos .default dentro do META-INF do activation.jar estão indo pra sua aplicação.