Bom pessoal tenho o seguinte codigo
[code]
import java.util.Properties;
import javax.activation.CommandMap;
import javax.activation.MailcapCommandMap;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class SendMail {
String server = FileConfig.getInstance().getsmtp();
private String host = server; /* endereço do servidor smtp */
public class SMTPAuthenticator extends Authenticator {
@Override
public PasswordAuthentication getPasswordAuthentication() {
String user = FileConfig.getInstance().getuser();
String pwd = FileConfig.getInstance().getpwd();
String username = user;
String password = pwd;
return new PasswordAuthentication(username, password);
}
}
public void EnviarEmailPara(String para, String assunto, String mensagem) throws Exception {
Properties mailProps = System.getProperties();
mailProps.put("mail.smtp.host", this.host);
//String fileAttachment = "";
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(mailProps, auth);
mailProps.put("mail.smtp.auth", "true");
mailProps.put("mail.debug", "true");
mailProps.put("mail.smtp.debug", "true");
mailProps.put("mail.mime.charset", "ISO-8859-1");
mailProps.put("mail.smtp.port", "25");
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);
// Definir mensagem
MimeMessage message = new MimeMessage(session);
String from = FileConfig.getInstance().getuser();
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(para));
message.setSubject(assunto);
//JOptionPane.showMessageDialog(null,message.getFrom()[0].toString() + " " + message.getAllRecipients()[0].toString());
// Criar parte da mensagem
MimeBodyPart messageBodyPart = new MimeBodyPart();
// Texto da mensagem
messageBodyPart.setText(mensagem);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Enviar parte da mensagem
message.setContent(multipart);
message.setContent(mensagem.toString(), "text/html");
// Enviar toda a mensagemSend the message
Transport.send(message);
}
}[/code]
Porem não estou conseguindo enviar anexo junto a isso alguem tem uma ideia.
Desde já agradeço pela atenção
Tente fazer assim:
// Altere o MimeMessage para Message
Message msg = new MimeMessage(session);
// Sete suas informacoes
.
.
.
// Altere o MimeBodyPart para BodyPart
BodyPart messageBodyPart = new MimeBodyPart();
// Seta as informacoes necessarias
.
.
.
// Adicionado mensagem
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Adiciona anexos
BodyPart bodyPart = new MimeBodyPart();
FileDataSource fileDataSource = new FileDataSource(new File("c:\arquivo.pdf")) {
@Override
public String getContentType() {
return "application/octet-stream";
}
};
bodyPart.setDataHandler(new DataHandler(fileDataSource));
bodyPart.setFileName("arquivo.pdf");
multipart.addBodyPart(bodyPart); // add anexo
// Finalizando mensagem para transportar
msg.setContent(multipart);
// Agora vc tenta enviar de acordo com seu provedor de email
.
.
.
Espero q funcione, abraço.
Bah cara nao consegui tem como tu colocar + ou - como seria o resto do código Obrigado pela atenção.
Estou enviando com um email do gmail
//Objeto encarregado de enviar os dados para o email
Transport tr;
try {
tr = session.getTransport(mailProtocolo); //define smtp para transporte
/*
* 1 - define o servidor smtp
* 2 - seu nome de usuario
* 3 - sua senha
*/
tr.connect(mailServer, userMail, userMailSenha);
msg.saveChanges();
//envio da mensagem
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
System.out.println("EMAIL ENVIADO");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(">> Erro: Envio Mensagem");
e.printStackTrace();
}
Eu tenho o seguite código ele até anexa alguma coisa mas não é o documento correto
[code]
import java.io.File;
import java.util.Properties;
import javax.activation.CommandMap;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.activation.MailcapCommandMap;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class SendMail {
String server = FileConfig.getInstance().getsmtp();
private String host = server; /* endereço do servidor smtp */
public class SMTPAuthenticator extends Authenticator {
@Override
public PasswordAuthentication getPasswordAuthentication() {
String user = FileConfig.getInstance().getuser();
String pwd = FileConfig.getInstance().getpwd();
String username = user;
String password = pwd;
return new PasswordAuthentication(username, password);
}
}
public void EnviarEmailPara(String para, String assunto, String mensagem) throws Exception {
Properties mailProps = System.getProperties();
mailProps.put("mail.smtp.host", this.host);
String fileAttachment = "";
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(mailProps, auth);
mailProps.put("mail.smtp.auth", "true");
mailProps.put("mail.debug", "true");
mailProps.put("mail.smtp.debug", "true");
mailProps.put("mail.mime.charset", "ISO-8859-1");
mailProps.put("mail.smtp.port", "25");
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);
// Definir mensagem
MimeMessage message = new MimeMessage(session);
String from = FileConfig.getInstance().getuser();
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(para));
//message.setSubject(assunto);
message.setSubject(assunto);
//JOptionPane.showMessageDialog(null,message.getFrom()[0].toString() + " " + message.getAllRecipients()[0].toString());
// Criar parte da mensagem
MimeBodyPart messageBodyPart = new MimeBodyPart();
// Texto da mensagem
FileDataSource fileDataSource = new FileDataSource(new File("C:\relatoriodia.xls"));
messageBodyPart.setDataHandler(new DataHandler(fileDataSource));
messageBodyPart.setFileName("relatoriodia.xls");
messageBodyPart.setText(mensagem);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
//Enviar parte da mensagem
message.setContent(multipart);//,mensagem.toString(), "text/html");
//Enviar toda a mensagemSend the message
Transport.send(message);
}
}[/code]
Ele envia um arquivo texto em vez de um pdf
Fiz uma alteração, porem acho q será enviado só o anexo, e o texto não será enviado. Me add no msn qualquer coisa, rdmardegam@hotmail.com
public void EnviarEmailPara(String para, String assunto, String mensagem) throws Exception {
Properties mailProps = System.getProperties();
mailProps.put("mail.smtp.host", this.host);
String fileAttachment = "";
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(mailProps, auth);
mailProps.put("mail.smtp.auth", "true");
mailProps.put("mail.debug", "true");
mailProps.put("mail.smtp.debug", "true");
mailProps.put("mail.mime.charset", "ISO-8859-1");
mailProps.put("mail.smtp.port", "25");
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);
// Definir mensagem
MimeMessage message = new MimeMessage(session);
String from = "rdmardegam@gmail.com";
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(para));
//message.setSubject(assunto);
message.setSubject(assunto);
//JOptionPane.showMessageDialog(null,message.getFrom()[0].toString() + " " + message.getAllRecipients()[0].toString());
// Criar parte da mensagem
MimeBodyPart messageBodyPart = new MimeBodyPart();
// Texto da mensagem
BodyPart bodyPart = new MimeBodyPart();
FileDataSource fileDataSource = new FileDataSource(new File("C:\relatorio.xls")) {
@Override
public String getContentType() {
return "application/octet-stream";
}
};
bodyPart.setDataHandler(new DataHandler(fileDataSource));
bodyPart.setFileName("relatoriodia.xls");
messageBodyPart.setText(mensagem);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(bodyPart);
//Enviar parte da mensagem
message.setContent(multipart);//,mensagem.toString(), "text/html");
//Enviar toda a mensagemSend the message
Transport.send(message);
}
Cara você testou e funcionou?
Vou ver com o pessoal do Ti se eles me liberam o msn.
Blz vou ver aquio como vou fazer
Tenta fazer parecido com o meu primeiro post.
Abraço.
Qualquer coisa fala ae
FUNCIONO DEI UMA GRANDE PENSADA AQUI E FUNCIONO CERTINHO
[code]
import java.io.File;
import java.util.Properties;
import javax.activation.CommandMap;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.activation.MailcapCommandMap;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class SendMail {
String server = FileConfig.getInstance().getsmtp();
private String host = server; /* endereço do servidor smtp */
public class SMTPAuthenticator extends Authenticator {
@Override
public PasswordAuthentication getPasswordAuthentication() {
String user = FileConfig.getInstance().getuser();
String pwd = FileConfig.getInstance().getpwd();
String username = user;
String password = pwd;
return new PasswordAuthentication(username, password);
}
}
public void EnviarEmailPara(String para, String assunto, String mensagem) throws Exception {
Properties mailProps = System.getProperties();
mailProps.put("mail.smtp.host", this.host);
String fileAttachment = "";
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(mailProps, auth);
mailProps.put("mail.smtp.auth", "true");
mailProps.put("mail.debug", "true");
mailProps.put("mail.smtp.debug", "true");
mailProps.put("mail.mime.charset", "ISO-8859-1");
mailProps.put("mail.smtp.port", "25");
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);
// Definir mensagem
MimeMessage message = new MimeMessage(session);
String from = FileConfig.getInstance().getuser();
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(para));
message.setSubject(assunto);
// Criar parte da mensagem
MimeBodyPart messageBodyPart = new MimeBodyPart();
// Texto da mensagem
messageBodyPart.setText(mensagem);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
BodyPart bodyPart = new MimeBodyPart();
FileDataSource fileDataSource = new FileDataSource(new File("c:\relatoriodia.xls"));
bodyPart.setDataHandler(new DataHandler(fileDataSource));
bodyPart.setFileName("relatoriodia.xls");
multipart.addBodyPart(bodyPart);
// Enviar parte da mensagem
message.setContent(multipart);
message.setFileName("relatoriodia.xls");
//message.setContent(mensagem.toString(), "text/html");
Transport.send(message);
}
}[/code]
Entao show de bola, parabens.
Agora so se voce precisar, tente implementar para enviar varios anexos ou se isso já resolve show de bola.
Flw
Bah velho boa ideia vour ver como posso fazer um dia em que eu tiver mais tempo.Mas agradeço demais pela sua ajuda.Quando você quizer
eu estou ai para lhe ajudar 8)