Enviar email (Anexar Imagem ao corpo)

1 resposta
J

Olá a todos!
Estou usando o Commons Email 1.1 para criar um email e enviá-lo.
Entretanto tenho que adicionar uma imagem ao corpo dele.

Aqui vai meu código:

HtmlEmail email = new HtmlEmail();
email.setHostName("http://www.hotmail.com");
email.addTo(cli.getEmail(), cli.getNome());
email.setFrom("[email removido]", "Jean");
email.setAuthentication("[email removido]", "xxxxxx");
email.setSubject("Parabéns " + cli.getNome() + "pelo seu aniversário!");


String img = ("file://" + Utils.getFolderImagens() + "\\cartaoAniversario.jpg");   // String com valor final de: file://C:\Users\Jay\Documents\NetBeansProjects\jCorretora\web\logos\cartaoAniversario.jpg


//System.out.println(img);
URL url = new URL(img);
String cid = email.embed(url, "Cartão de Aniversário");    //   <--- Aqui que acontece a exceção.

email.setHtmlMsg("<html><center><img src='cid:"+ cid +"' /></center></html>");

email.setTextMsg("Seu browser não suporta mensagens Html.");

email.send();

Aonde está o meu erro?
É este o melhor modo de adicionar a imagem ao corpo?
Obrigado!

1 Resposta

F
um exemplo
public void enviaEmailFormatoHtml() throws EmailException, MalformedURLException {  
          
        HtmlEmail email = new HtmlEmail();  
          
        // adiciona uma imagem ao corpo da mensagem e retorna seu id  
        URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");  
        String cid = email.embed(url, "Apache logo");     
          
        // configura a mensagem para o formato HTML  
        email.setHtmlMsg("&lt;html&gt;Logo do Apache - <img >&lt;/html&gt;&quot;);  
  
        // configure uma mensagem alternativa caso o servidor não suporte HTML  
        email.setTextMsg(&quot;Seu servidor de e-mail não suporta mensagem HTML&quot;);  
          
        email.setHostName(&quot;smtp.gmail.com&quot;); // o servidor SMTP para envio do e-mail  
        email.addTo(&quot;[email removido]&quot;, &quot;Zé&quot;); //destinatário  
        email.setFrom(&quot;[email removido]&quot;, &quot;Eu&quot;); // remetente  
        email.setSubject(&quot;Teste -&gt; Html Email&quot;); // assunto do e-mail  
        email.setMsg(&quot;Teste de Email HTML utilizando commons-email&quot;); //conteudo do e-mail  
        email.setAuthentication(&quot;teste&quot;, &quot;xxxxx&quot;);  
        email.setSmtpPort(465);  
        email.setSSL(true);  
        email.setTLS(true);  
        // envia email  
        email.send();  
}
Criado 6 de julho de 2009
Ultima resposta 7 de jul. de 2009
Respostas 1
Participantes 2