Bom dia a todos gostaria de uma luz, como faço para enviar anexos junto ao email, até consegui fazer
mais caso haja um anexo o texto do email não aparece,
segue codigo :
[code] public boolean enviaMensagem(String assunto, String texto, String recipe) {
String host = “MEUSMTP”;
String username = "EMAIL";
String password = "SENHA";
String recipientEmailAddress = recipe;
Transport transport = null;
boolean mensagemEnviada = false;
try {
final InternetAddress sender = new InternetAddress(username);
final InternetAddress recipient = new InternetAddress(recipientEmailAddress);
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(properties);
MimeMessage mensagem = new MimeMessage(session);
mensagem.setSubject(assunto);
mensagem.setText(texto);
mensagem.setFrom(sender);
mensagem.addRecipient(Message.RecipientType.TO, recipient);
mensagem.saveChanges();
FileDataSource fds = new FileDataSource("C:\teste.txt");
mensagem.setDataHandler(new DataHandler(fds));
mensagem.setFileName(fds.getName());
transport = session.getTransport("smtp");
transport.connect(host, sender.getAddress(), password);
transport.sendMessage(mensagem, mensagem.getAllRecipients());
transport.close();
mensagemEnviada = true;
} catch (MessagingException ex) {
System.out.println("Erro :" + ex);
} finally {
try {
transport.close();
} catch (Exception ex) {
System.out.println("Erro :" + ex);
}
}
return mensagemEnviada;
}[/code]
pmlm
#2
Tens de criar dois elementos diferentes, um para o texto e um para o anexo e adicionar os dois à tua mensagem.
(Não testei)
MimeMessage mensagem = new MimeMessage(session);
mensagem.setSubject(assunto);
mensagem.setFrom(sender);
mensagem.addRecipient(Message.RecipientType.TO, recipient);
mensagem.saveChanges();
MimeBodyPart mensagemBody = new MimeBodyPart();
mensagemBody.setText(texto);
MimeBodyPart anexoBody = new MimeBodyPart();
FileDataSource fds = new FileDataSource("C:\teste.txt");
anexoBody.setDataHandler(new DataHandler(fds));
anexoBody.setFileName(fds.getName());
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(mensagemBody);
multipart.addBodyPart(anexoBody);
mensagem.setContent(multipart);
bom dia pmlm, teste aqui mais sem exito, este codigo faz com que o conteudo do anexo(que é um xml) apareça no corpo da mensagem
vou continuar testando aqui.
obrigado pela ajuda.
jweibe
#4
Cara se não conseguir anexar arquivos ao e-mail, tem um tutorial no site da DevMedia que utiliza a API do Commons-email e bem simples… da uma olhada la depois
http://www.devmedia.com.br/articles/viewcomp.asp?comp=3306
Bom dia jweibe, vi o link me parece muito facil mesmo com esta api
mais meu patrão quer que eu use o JavaMail =/
Abraço.
pmlm
#6
[quote=WalkMan]bom dia pmlm, teste aqui mais sem exito, este codigo faz com que o conteudo do anexo(que é um xml) apareça no corpo da mensagem
vou continuar testando aqui.
obrigado pela ajuda.[/quote]
Faltou uma linha:
anexoBody.setDisposition(Part.ATTACHMENT);
pmlm, estou usando o codigo da seguinte maneira
anexoBody.setDataHandler(new DataHandler(fds));
anexoBody.setDisposition(Part.ATTACHMENT);
anexoBody.setFileName(fds.getName());
mas tambem sem resultado =/
pmlm
#8
Este método funciona há anos. Vê o que poderá faltar.
[code]public void sendMail(String from, String to, String subject, String message, String attach) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
mimeMessage.setSubject(subject, CHARSET);
Address addressFrom = new InternetAddress(from);
mimeMessage.setFrom(addressFrom);
mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
Multipart multipart = new MimeMultipart();
// Texto
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(message, "text/plain");
multipart.addBodyPart(messageBodyPart);
//Anexo
File file = new File(attach);
DataSource ds = new FileDataSource(file) {
public String getContentType() {
return "application/octet-stream";
}
};
BodyPart mbp = new MimeBodyPart();
mbp.setDataHandler(new DataHandler(ds));
mbp.setFileName(file.getName());
mbp.setDisposition(Part.ATTACHMENT);
multipart.addBodyPart(mbp);
mimeMessage.setContent(multipart);
mailSender.send(mimeMessage);
}[/code]
Da uma olhada aqui: http://mballem.wordpress.com/2011/02/15/enviando-email-com-a-api-javamail/
Ensina a enviar email com varios anexos e utilizando o javamail.
romarcio pmlm, consegui implementar graças aos exemplos de voces!
muito obrigado!
abraços.
[quote=WalkMan]romarcio pmlm, consegui implementar graças aos exemplos de voces!
muito obrigado!
abraços.[/quote]
:thumbup: