Envio de imagem em e-mail usando o JavaMail

4 respostas
I

Boa tarde Pessoal,

Estou fazendo uma classe para poder enviar e-mails automáticos via Java Mail. Até tudo bem, está enviando legalzinho o email, anexa imagens no email e aí tá 100%. Gostaria agora de enviar ao invés de um anexo, enviar um jpg utilizando por exemplo a tag img src, mas está me retornando um erro ao tentar enviar o email.

Não sei se alguém já passou por isso, então gostaria de um auxílio.

Abaixo segue meu código (utilizei como referência os links http://blog.globalcode.com.br/2011/04/javamail-enviando-mensagem-html-com.html e http://blog.globalcode.com.br/2011/03/javamail-enviando-e-mail-com-java.html da Global Code, onde só fiz algumas alterações pra poder pegar os dados do meu banco.

Aqui seria o código HTML para buscar a imagem. Ela está buscando do meu site na internet e o link está válido (só mudei o link para postar).

//nova alteração
        // conteudo html que sera atribuido a mensagem  
        String htmlMessage = "<html>Envio de imagem";
        htmlMessage = htmlMessage + "<img src=http://www.meusite.com.br/imgs/site/fundo_home.jpg>";
        htmlMessage = htmlMessage + "</html>";

O erro que me retorna é

javax.mail.MessagingException: IOException while sending message;
  nested exception is:
	java.io.IOException: javax.mail.MessagingException: Empty multipart: multipart/mixed; 
	boundary="----=_Part_2_31610619.1326743388416"
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1141)
	at javax.mail.Transport.send0(Transport.java:195)
	at javax.mail.Transport.send(Transport.java:124)
	at Email.envio(Email.java:130)
	at Envio.EnviarEmail(Envio.java:14)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
	at javax.faces.component.UICommand.broadcast(UICommand.java:383)
	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
	at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.IOException: javax.mail.MessagingException: Empty multipart: multipart/mixed; 
	boundary="----=_Part_2_31610619.1326743388416"
	at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:105)
	at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:884)
	at javax.activation.DataHandler.writeTo(DataHandler.java:317)
	at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1476)
	at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1772)
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1099)
	... 47 more

Obrigado,

Att.,

Junior

4 Respostas

R

Você pode fazer isso, mas tem que setar o envio para HTML .setTypeTextMail(“text/html”) - Da uma olhada aqui: http://wp.me/p1iE6J-2x

I

Fala Romarcio!

Vou dar uma olhada no link… obrigado pela ajuda.

att.,

Junior

I

Romarcio,

Funcionou redondinho… obrigado pela dica…

Abraço,

Junior

R

icjunior07:
Romarcio,

Funcionou redondinho… obrigado pela dica…

Abraço,

Junior

:thumbup:
Legal que ajudou.
Coloca o tópico como resolvido então.
T+

Criado 16 de janeiro de 2012
Ultima resposta 17 de jan. de 2012
Respostas 4
Participantes 2