Enviar e-mail com sendSimpleMail, utilizando imagens

3 respostas
aureliolima

Pessoal…

tenho uma classe ‘Email.java’ que envia e-mail automaticamente, qdo eu chamo tal classe passando seus devidos parâmetros… Até aí, blza… funciona direitinho, porém, to tentando colocar uma imagem neste e-mail, mas não to conseguindo…

Abaixo to postando esta classe, que já deve ser conhecida de muitos de vcs, pois a maior parte dela peguei em algum fórum…
Adicionei alguns comentários em maiúsculo, com minhas tentativas…

package br.com.parcerianet.uteis;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import javax.activation.CommandMap;
import javax.activation.MailcapCommandMap;

public class Email {

public void sendSimpleMail (String subject,
                            String to,String from, String mensagem)
    throws AddressException, MessagingException {

Properties mailProps = new Properties();


// Definição dos 'MimeTypes' 
// NÃO ESTOU USANDO ESTAS DEFINIÇÕES POIS NÃO FUNCIONOU
MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();
     mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
     mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
     mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
     mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
     mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
     CommandMap.setDefaultCommandMap(mc);

// TENTATIVA DE ATRIBUIR UMA IMAGEM.... SEM SUCESSO...
//String imgTopo = "&lt;HTML&gt;<img >&lt;/HTML&gt;<BR/><BR/>";

//mensagem = imgTopo+mensagem;

//definição do mailserver
mailProps.put("mail.smtp.host", "mail.NOMEDAEMPRESA.com.br");

Session mailSession = Session.getDefaultInstance(mailProps, null);

//As duas linhas seguintes de código, colocam no
//formato de endereços,
//supostamente válidos, de email os dados
//passados pelos parâmetros to e from.
InternetAddress destinatario = new InternetAddress (to);
InternetAddress remetente = new InternetAddress (from);

//As duas linhas de código a seguir, são
//responsáveis por setar os atributos e
//propriedas necessárias do objeto message
//para que o email seja enviado.
//inicialização do objeto Message
Message message = new MimeMessage (mailSession);

//Definição de quem está enviando o email
message.setFrom(remetente);

//define o(s) destinatário(s) e qual o tipo do
//destinatário.
//os possíveis tipos de destinatário: TO, CC, BCC

message.setRecipient( Message.RecipientType.TO, destinatario );
//definição do assunto do email

message.setSubject (subject);
//definição do conteúdo da mensagem e do
//tipo da mensagem

//message.setContent (mensagem.toString(), String.valueOf(mc.getMimeTypes()));

// TENTEI USAR 'text/html', PORÉM SEM SUCESSO...
message.setContent (mensagem.toString(), "text/plain");
//a linha de código seguinte é a responsável
//pelo envio do email

Transport.send (message);
}

}

Desde já agradeço.

abraço

3 Respostas

erico_kl

você quer anexar uma imagem ou colocá-la junto com o e-mail?
se for colocá-la junto com o e-mail formate o e-mail em html então coloque a imagem…
eu usava uma API do apache (Commons Email) para enviar e-mails…
http://commons.apache.org/email/
outros links:
http://www.jdocs.com/email/1.0/org/apache/commons/mail/package-summary.html
http://commons.apache.org/email/apidocs/org/apache/commons/mail/package-summary.html

aureliolima

colocá-la junto ao e-mail…

no código que postei não tem como incluir imagem???

Pois não queria mudar o que já tenho, pois já está sendo utilizado em outras partes do sistema.

aguardo retorno…

abraço!

E

Faça o que o Erico lhe recomendou. Sempre que alguém começa algo muito simples, os requisitos acabam mudando e você acaba tendo de jogar fora tudo que você fez. É melhor, já que está com a mão na massa, usar o tal do Commons Email do Apache, porque anexar e mostrar figuras em emails é bem chatinho se você não souber o que está fazendo e tentar fazer as coisas “na mão”.

Criado 18 de dezembro de 2009
Ultima resposta 18 de dez. de 2009
Respostas 3
Participantes 3