Javamail

6 respostas
C

Oi galera!!!
Estou passando emails em um form usando Javamail.
Algúem sabe se tem como passar a mensagem em formato HTML?

6 Respostas

T

Email HTML é difícil de fazer em JavaMail (é possível mas dá um bom trabalho), principalmente se ele envolve enviar as imagens juntamente com o email. Use o Commons Email

TLCC

Este site tem um tutorial muito bom da uma olhada la:
http://www.cafeh.com.br/artigos/7/index.jsp

repare na linha
email.setContent( msg.getText(), "text/html" );

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

public class MailManager {
    private boolean NEED_AUTH = true;

    public MailManager() {
    }

    public void send(MailMessage msg) throws Exception {
        try {
            Properties mailProps = new Properties();
            mailProps.put("mail.smtp.host", "mail.localhost.com.br");

            SimpleAuth auth = null;
            if (!NEED_AUTH) {
                // [#] No authorization needed for this mail server
                mailProps.put("mail.smtp.auth", "false");
            } else {
                // [#] Authorization needed for this mail server
                auth = new SimpleAuth("pburglin", "c3po"),
                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/html" );
            
            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;
    }
O_SANTO_

message.setContent( “Olá” , “text/html” );

Uma opção seria na hora que você setar o conteúdo da mensagem, informar o seu mimetype.

boaglio

Leia o nosso tutorial:

Enviando emails com Java (Paulo Silveira)

Utilize o javax.mail para enviar emails através do SMTP, mas nunca faça spam!

http://www.guj.com.br/java.tutorial.artigo.21.1.guj

C

Obrigado pelas respostas pessoal!!!
Vou tentar implementar a solução!!
Um abraço.
Charles

brunoGama

eu tive um problema pra fazer isso no osso, mas rolo aqui legal
aqui está a minha solução.

Criado 22 de maio de 2006
Ultima resposta 22 de mai. de 2006
Respostas 6
Participantes 6