Pessoal posso usar o exemplo do attachment.setPath(“mypictures/john.jpg”) pegar o caminho da imagem, em vez do caminho do exemplo, pegar o caminho do relatório do Ireport, posso pegar Ex ( c/ireport/relatorios), pois quero que o sistema, ao salvar no banco com o botão salvar, ele através do evento do botão?
Tá um pouco confuso sua questão, explica melhor por favor
Não expliquei bem, quero pegar o caminho do relatório do ireport que é c/documentos, esse caminho será que posso usar no attachment.setPath(“mypictures/john.jpg”) no Java email, será que vai funcionar, pois quero enviar email automático pro responsável ao salvar no banco, com o botão salvar, que vem do método salvar
vc exportou seu relatório pra uma imagem? Mas sim, vc consegue passar o relatório gerado por email com o caminho absoluto.
C:/Relatórios/Seu Arquivo.extensao
Fiz assim, mas ainda da errado.
identar texto pré-formatado por 4 espaços
Classe Java do Emai
public class EnviarJava {
public static void enviarEmail(String caminho, String descri, String nome) {
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.googlemail.com");
email.setSslSmtpPort("465");
email.setStartTLSRequired(true);
email.setStartTLSEnabled(true);
email.setSSLOnConnect(true);
email.setAuthenticator(new DefaultAuthenticator("henri199@gmail.com", "senhaXX"));
try {
email.setFrom("henri199@gmail.com");
email.setSubject("teste");
email.setMsg("teste mensagem");
email.addTo("alexandremenna@hotmail.com");
email.setDebug(true);
EmailAttachment anexo = new EmailAttachment();
anexo.setPath(caminho);
anexo.setDisposition(EmailAttachment.ATTACHMENT);
anexo.setDescription(descri);
anexo.setName(nome);
email.setDebug(true);
//email.attach(anexo);
//email.addTo(to);
//email.addReplyTo(to);
email.send();
} catch (EmailException ex) {
Logger.getLogger(EnviarJava.class.getName()).log(Level.SEVERE, null, ex);
}
}
Botão salvar
}
identar texto pré-formatado por 4 espaços
private void BotaoSalvarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
EmitirAcampamento();
EnviarJava.enviarEmail(arqui.getAbsolutePath(), arqui.getName(), arqui.getPath());
}
private void CalcularActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
CalcularAC();
}
Cara, nao bota sua senha aqui, vou editar e ja respondo.
O que ta dando errado? Ta dando erro?
valeu, nem tinha visto kk. o Erro é esse xception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at br.com.sistemaPraia.telas.TelaAcampar.BotaoSalvarActionPerformed(TelaAcampar.java:484)
at br.com.sistemaPraia.telas.TelaAcampar.access$900(TelaAcampar.java:27)
at br.com.sistemaPraia.telas.TelaAcampar$10.actionPerformed(TelaAcampar.java:378)
Qual é a linha 484?
EnviarJava.enviarEmail(arqui.getAbsolutePath(), arqui.getName(), arqui.getPath());
Esse arqui vem de onde? ta vazio
ai que esta, agora vc chegou no ponto que eu queria, como resolver isso.
identar texto pré-formatado por 4 espaços
public static void enviarEmail(String caminho, String descri, String nome) {
MultiPartEmail email = new MultiPartEmail();
email.setHostName(“smtp.googlemail.com”);
email.setSslSmtpPort(“465”);
email.setStartTLSRequired(true);
email.setStartTLSEnabled(true);
email.setSSLOnConnect(true);
email.setAuthenticator(new DefaultAuthenticator("henri199@gmail.com", "senha "));
try {
email.setFrom("henri199@gmail.com");
email.setSubject("teste");
email.setMsg("teste mensagem");
email.addTo("alexandremenna@hotmail.com");
email.setDebug(true);
EmailAttachment anexo = new EmailAttachment();
anexo.setPath(caminho);
anexo.setDisposition(EmailAttachment.ATTACHMENT);
anexo.setDescription(descri);
anexo.setName(nome);
email.setDebug(true);
//email.attach(anexo);
//email.addTo(to);
//email.addReplyTo(to);
email.send();
} catch (EmailException ex) {
Logger.getLogger(EnviarJava.class.getName()).log(Level.SEVERE, null, ex);
}
}
qual api vc ta usando? javamail?
isso javaEmail
Faz assim (a string imagem
pode ser o caminho de um arquivo):
public void envioAnexo(String nomeRemetente, String assunto, String mensagem, String destinatario, String imagem) {
try {
String host = "smtp.gmail.com";
String usuario = "xxxx@gmail.com";
String senha = "xxxx";
String remetente = "xxxx@gmail.com";
boolean sessionDebug = false;
Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.required", "true");
props.put("mail.smtp.ssl.trust", "smtp.gmail.com");
// jdk > 8
// java.security.Security.addProvider(new Provider(host, remetente, senha) {
// });
// jdk == 8
java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
Session mailSession = Session.getDefaultInstance(props, null);
mailSession.setDebug(sessionDebug);
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(remetente, nomeRemetente)); msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse(destinatario));
msg.setSubject(assunto);
msg.setSentDate(new Date());
// cria a primeira parte da mensagem
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setContent(mensagem, "text/html;charset=UTF-8");
// cria a segunda parte da mensage
MimeBodyPart mbp2 = new MimeBodyPart();
// anexa o arquivo na mensagem
FileDataSource fds = new FileDataSource(imagem);
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(fds.getName());
// cria a Multipart
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
// adiciona a Multipart na mensagem
msg.setContent(mp);
// configura a data: cabecalho
msg.setSentDate(new Date());
// envia a mensagem
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, usuario, senha);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
System.out.println("Enviado com Sucesso");
} catch (MessagingException ex) {
ex.printStackTrace();
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
}
pra chamar esse código vc faz:
envioAnexo(
"Fulano", //Nome do Remetente
"JavaMail Code", //Asunto
"Abner mandou esse código", //Mensagem
"fulano@gmail.com", //Email do destinatário
"c:\\caminho\\teste.pdf" //arquivo
);
mano sinceramente e com todo respeito eu te amo, so deu um erro javax.mail.AuthenticationFailedException
manda o erro completo
mano, o erro completo
Texto pré-formatado
EBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host “smtp.gmail.com”, port 25, isSSL false
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;
nested exception is:
java.net.SocketException: Permission denied: connect
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host “smtp.gmail.com”, port 25, isSSL false
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;
nested exception is:
java.net.SocketException: Permission denied: connect
mostra como vc colocou o seu codigo, e vê se tem algum tipo de software bloqueando o acesso do Java, (anti virus, firewall)