Enviar e-mail HTML

1 resposta
K

Olá,

Bom, estou com o seguinte problema. Preciso enviar um e-mail em codigo html(vai ser um relatorio). Consigo enviar e-mail texto. para isso uso os seguintes codigos.

package Mail;

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

public class MailManager {
    
    /** Creates a new instance of MailManager */
    public MailManager() {
    }
    
    public void send(MailServer server, MailMessage msg) throws Exception {
        try {
            Properties mailProps = new Properties();
            mailProps.put("mail.smtp.host", server.getMailServer());
            SimpleAuth auth = null;
            if (server.isNeedsAuth()) {
                // [#] No authorization needed for this mail server
                mailProps.put("mail.smtp.auth", "false");
            } else {
                // [#] Authorization needed for this mail server
                auth = new SimpleAuth(server.getUsername(), server.getPassword());
                mailProps.put("mail.smtp.auth", "true");
                mailProps.put("mail.user", auth.username);
                mailProps.put("mail.from", msg.getFrom());
                mailProps.put("mail.to", msg.getTo());
            }
            Session mailSession = Session.getInstance(mailProps, auth);
            mailSession.setDebug(false);
            Message email = new MimeMessage(mailSession);
            email.setRecipients( Message.RecipientType.TO, InternetAddress.parse(msg.getTo()) );
            if (!msg.getCc().trim().equals("")) {
                email.setRecipients( Message.RecipientType.CC, InternetAddress.parse(msg.getCc()) );
            }
            if (!msg.getBcc().trim().equals("")) {
                email.setRecipients( Message.RecipientType.BCC, InternetAddress.parse(msg.getBcc()) );
            }
            email.setFrom( new InternetAddress(msg.getFrom()));
            email.setSubject(msg.getSubject());
            email.setContent( msg.getText(), "text/plain" );
            
            Transport.send( email );
        } catch (Exception e) {
            System.out.println(" [E] ERROR: "+e);
            e.printStackTrace(System.out);
            throw e;
        }
        System.out.println(" [#] Email successfully sent");
        return;
    }
    
    public void send(MailServer server, String to, String cc, String bcc, String from, String subject, String text) throws Exception {
        MailMessage msg = new MailMessage(to,cc,bcc,from,subject,text);
        this.send(server, msg);
        return;
    }
    
    public static void enviar(String para, String de, String titulo, String mensagem) {
        MailServer server = new MailServer("mail.fruki.ind.br","informatica","",true);
        MailManager m = new MailManager();
        try {
            m.send(server, para,"","",de,titulo,mensagem);
        } catch (Exception e) {
            e.printStackTrace(System.out);
        }
    }
    
    class SimpleAuth extends Authenticator {
        public String username = null;
        public String password = null;
        public SimpleAuth(String user, String pwd) {
            username = user;
            password = pwd;
        }
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username,password);
        }
    }
}

Esse codigo envia o e-mail normalmente, mas preciso que envie o codigo HTML.

Alguem tem alguma ideia de como eu faço isso??? A aplicação é desktop/SWING.

Desde já obrigado pela ajuda.

1 Resposta

C

Fala Kiko :grin: !

Você vai precisar fazer isto em StringBuffer se não me engano!
Dá uma olhada no index do jsdk: All Classes > StringBuffer

Criado 22 de novembro de 2006
Ultima resposta 5 de dez. de 2006
Respostas 1
Participantes 2