Pessoal fiz uma classe para envio de email com a API java mail, mas estou com um problema necessito enviar o anexo no corpo do email, mas o anexo é em html ou em alguns casos em JPG, algém conhece como posso fazer isso. Grato
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package automaticnewsletter.emailserver;
import java.io.File;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
//"javax.net.ssl.SSLSocketFactory"
public class SendMail
{
private String mailSMTPServer;
private String mailSMTPServerPort;
private Properties props;
transient SimpleAuth auth;
private transient Session session;
private transient Message msg;
transient Transport tr;
public transient String login, passwd;
public SendMail()
{ //Para o [email removido]
mailSMTPServer = "smtp. xxxxx.com";
mailSMTPServerPort = "25";
}
public void setSendMail(String mailSMTPServer, String mailSMTPServerPort)
{ //Para outro Servidor
this.mailSMTPServer = mailSMTPServer;
this.mailSMTPServerPort = mailSMTPServerPort;
}
public void sendMail(String from)
{
props = new Properties();
props.setProperty("proxySet","true");
props.setProperty("socksProxyHost","192.168.15X.X"); // IP do Servidor Proxy
props.setProperty("socksProxyPort","10X0"); // Porta do servidor Proxy
props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.host", mailSMTPServer); //server SMTP
props.put("mail.smtp.auth", "true"); //ativa autenticacao
props.put("mail.smtp.user", from); //usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)
props.put("mail.debug", "true");
props.put("mail.smtp.starttls.enable=true", "true");
props.put("mail.smtp.port", mailSMTPServerPort); //porta
props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket
//use para o yahoomail //props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");//"javax.net.ssl.SSLSocketFactory"
props.put("mail.smtp.socketFactory.fallback", "false");
}
public void setUser( String login,String passwd)
{
this.passwd =passwd;
this.login=login;
}
public void Authentication()
{
//Cria um autenticador que sera usado a seguir
auth = new SimpleAuth (login,passwd);
session = Session.getInstance(props, auth);
session.setDebug(true); //Habilita o LOG das ações executadas durante o envio do email
msg=new MimeMessage(session);
}
public void setMessage(String from, String to, String assunto)
{
try {
//Setando o destinatário
msg.setRecipient(Message.RecipientType.BCC, new InternetAddress(to));
//Setando a origem do email
msg.setFrom(new InternetAddress(from));
//Setando o assunto
msg.setSubject(assunto);
//Setando o conteúdo/corpo do email
//msg.setContent(message,"text/html");
} catch (Exception e)
{
System.out.println(">> Erro: Completar Mensagem"+" "+e);
}
}
public void setAttachment(String file,String message) throws MessagingException
{
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(message);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(new File(file));
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName("newsletter");
multipart.addBodyPart(messageBodyPart);
msg.setContent(multipart);
}
public void Envia()
{
try {
tr = session.getTransport("smtp"); //define smtp para transporte
/*
* 1 - define o servidor smtp
* 2 - seu nome de usuario do
* 3 - sua senha do
*/
tr.connect(mailSMTPServer, login, passwd);
msg.saveChanges(); // don't forget this
//envio da mensagem
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
}
catch (Exception e)
{
// TODO Auto-generated catch block
System.out.println(">> Erro: Envio Mensagem"+" "+e);
}
}
}