Duvida enviar email com anexo[resolvido]

18 respostas
D

Gente tenho esse codigo ai como posso fazer pra enviar anexo agora peguei este trecho de codigo que esta ai no meio do codigo
mais nao sei exatamente o que ele faz porque ai no meio do codigo ele nao esta fazendo nda...poderiam me tirar essa duvida de como fazer neste codigo pra ele anexar arquivo?

MimeBodyPart mbp2 = new MimeBodyPart();  
			                       FileDataSource fds = new FileDataSource("caminho do arquivo");  
			                       mbp2.setDataHandler(new DataHandler(fds));  
			                       mbp2.setFileName(fds.getName()); 
			                       
			                       Multipart mp = new MimeMultipart();  
			                       mp.addBodyPart(mbp2);
botao1.addActionListener(new ActionListener() {  
				public void actionPerformed(ActionEvent e) { 
					
			                              Properties props = new Properties();    
			                             if(j.getSelectedItem().equals("Hotmail")){  
			                              /** Parâmetros de conexão com servidor Hotmail */    
			                             props.put("mail.transport.protocol", "smtp");    
			                             props.put("mail.smtp.host", "smtp.live.com");    
			                             props.put("mail.smtp.socketFactory.port", "587");    
			                             props.put("mail.smtp.socketFactory.fallback", "false");    
			                             props.put("mail.smtp.starttls.enable", "true");    
			                             props.put("mail.smtp.auth", "true");    
			                             props.put("mail.smtp.port", "587");    
			                             }else if(j.getSelectedItem().equals("Gmail")){  
			                            props.put("mail.smtp.auth", "true");    
			                            props.put("mail.smtp.starttls.enable", "true");    
			                            props.put("mail.smtp.host", "smtp.gmail.com");    
			                            props.put("mail.smtp.port", "587");    
			          
			        }  
			                             MimeBodyPart mbp2 = new MimeBodyPart();  
			                       FileDataSource fds = new FileDataSource("caminho do arquivo");  
			                       mbp2.setDataHandler(new DataHandler(fds));  
			                       mbp2.setFileName(fds.getName()); 
			                       
			                       Multipart mp = new MimeMultipart();  
			                       mp.addBodyPart(mbp2);  

			          
			                            Session session = Session.getInstance(props,    
			                                new javax.mail.Authenticator() {    
			                                protected PasswordAuthentication getPasswordAuthentication() {    
			                                return new PasswordAuthentication(caixa1.getText(), caixa6.getText());    
			                                }    
			                            });    
			                             
			                                try {    
			                            
			                                Message message = new MimeMessage(session);    
			                                message.setFrom(new InternetAddress(caixa1.getText()));    
			                                message.setRecipients(Message.RecipientType.TO,    
			                                InternetAddress.parse(caixa2.getText()));    
			                                message.setSubject(caixa3.getText());    
			                                message.setText(caixa4.getText());    
			                             
			                                Transport.send(message);    
			                             
			                                JOptionPane.showMessageDialog(null,"Email Enviado com Sucesso");    
			                             
			                            } catch (MessagingException e1) {    
			                            throw new RuntimeException(e1);    
			                                    
			                            }    
			                        }    
             
			                            
        });

18 Respostas

romarcio

Você pode usar o componente JFileChooser para selecionar o arquivo: http://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/JFileChooser.html

D

eu usei ate pra seleciona mais nao to conseguindo anexa arquivo ele abre a janela pra seleciona o arquivo mais nao coloca no campo

olha o codigo do botao que ta

botao.addActionListener(new ActionListener() {    
                public void actionPerformed(ActionEvent e) { 
            
            JFileChooser chooser = new JFileChooser();
            int returnVal = chooser.showOpenDialog(caixa7);
            if(returnVal == JFileChooser.APPROVE_OPTION) {
               System.out.println("You chose to open this file: " +
                    chooser.getSelectedFile().getName());
            }
                }    
                
            });

botao que envia o email pra anexa porem nao anexa nada

botao1.addActionListener(new ActionListener() {    
                public void actionPerformed(ActionEvent e) {    
                    Properties props = new Properties();    
                    if (j.getSelectedItem().equals("Hotmail")) {    
                        /** Parâmetros de conexão com servidor Hotmail */    
                        props.put("mail.transport.protocol", "smtp");    
                        props.put("mail.smtp.host", "smtp.live.com");    
                        props.put("mail.smtp.socketFactory.port", "587");    
                        props.put("mail.smtp.socketFactory.fallback", "false");    
                        props.put("mail.smtp.starttls.enable", "true");    
                        props.put("mail.smtp.auth", "true");    
                        props.put("mail.smtp.port", "587");    
                    } else if (j.getSelectedItem().equals("Gmail")) {    
                        props.put("mail.smtp.auth", "true");    
                        props.put("mail.smtp.starttls.enable", "true");    
                        props.put("mail.smtp.host", "smtp.gmail.com");    
                        props.put("mail.smtp.port", "587");    
                    } else if (j.getSelectedItem().equals("Bol")) {    
                        props.put("mail.smtp.auth", "true");    
                        props.put("mail.smtp.starttls.enable", "true");    
                        props.put("mail.smtp.host", "smtps.bol.com.br");    
                        props.put("mail.smtp.port", "587");    
                    } else if (j.getSelectedItem().equals("Ibest")) {    
                        props.put("mail.smtp.auth", "true");    
                        props.put("mail.smtp.starttls.enable", "true");    
                        props.put("mail.smtp.host", "smtp.ibest.com.br");    
                        props.put("mail.smtp.port", "587");    
                    } else if (j.getSelectedItem().equals("Ig")) {    
                        props.put("mail.smtp.auth", "true");    
                        props.put("mail.smtp.starttls.enable", "true");    
                        props.put("mail.smtp.host", "smtp.ig.com.br");    
                        props.put("mail.smtp.port", "587");    
                    }    

                        Session session = Session.getInstance(props,    
                                new javax.mail.Authenticator() {    
                                    protected PasswordAuthentication getPasswordAuthentication() {    
                                        return new PasswordAuthentication(caixa1    
                                                .getText(), caixa6.getText());    
                                    }    
                                });   
        
                        try {    
        
                            Message message = new MimeMessage(session);    
                            message.setFrom(new InternetAddress(caixa1.getText()));    
                            message.setRecipients(Message.RecipientType.TO,    
                                    InternetAddress.parse(caixa2.getText()));    
                            message.setSubject(caixa3.getText());    
                            message.setText(caixa4.getText());  
                            
                           
                            MimeBodyPart mbp2 = new MimeBodyPart();
                           FileDataSource fds = new FileDataSource("c:\\teste\\User.txt");      
                           mbp2.setDataHandler(new DataHandler(fds));      
                            mbp2.setFileName(fds.getName());     
            
                           Multipart mp = new MimeMultipart();      
                           mp.addBodyPart(mbp2);      
                      
                            
        
                            Transport.send(message);    
        
                            JOptionPane.showMessageDialog(null,    
                                    "Email Enviado com Sucesso");    
        
                        } catch (MessagingException e1) {    
                            throw new RuntimeException(e1);    
                        }    
                
                    }    
        
            });

nao tenho a menor ideia do que esta faltando

romarcio

Você deve recuperar a url do arquivo selecionado e setar no seu código.

String url = "";

JFileChooser chooser = new JFileChooser();  
int returnVal = chooser.showOpenDialog(caixa7);  
if(returnVal == JFileChooser.APPROVE_OPTION) {  
    url = chooser.getSelectedFile().getPath();  
}  

FileDataSource fds = new FileDataSource(url);
D

fiz um teste ainda nao esta recuperando url nem anexando

D

quando recupera a url era pra aaparecer na caixa7 né e nao aparece nada

D

eu troquei pelo seu codigo o botao de selecionar o arquivo ai mais continua o erro persistindo nao anexa e nem aparece a url na caixa7 nao sei se tem que aparecer note que no codigo esta

datafile duas vezes agora no botao onde seleciona e no botao onde anexa e envia o email…da uma olhada é assim mesmo…?da uma olhada nos codigo de cima e no que vc fez \o

romarcio

Mas o que é caixa7 ?

D

e o campo que eu coloquei pra seleciona o arquivo

D

o arquivo e selecionado no botao e a url acho que fica na caixa 7 ao lado do botao e uma jtextfield

romarcio

Posta como está exatamente seu código depois das mudanças.

D

janela do envio de email completa estou usando o eclipse \o nao esta enviando com anexo.

import java.awt.*;  
    import java.awt.event.*;  
    import java.text.SimpleDateFormat;  
    import java.util.Date;  
import java.util.Properties;
      
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
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;
    import javax.persistence.EntityManager;  
    import javax.persistence.EntityManagerFactory;  
    import javax.persistence.Persistence;  
    import javax.swing.*;  

import sun.security.util.Password;
      
    
    import Modelo.Cliente;  
    import Modelo.Compra;  
    import Modelo.Conta;  
      
    import net.sf.jasperreports.engine.JasperPrint;  
import net.sf.jasperreports.view.JasperViewer;  
      
    //import controle.Utilitarios;  
      
    // Ctrl+Shift+F => Formata o código  
    // Ctrl+A e Ctrl+i => Formata a seleção  
      
    public class InterfaceEmail extends JFrame {  
		private JLabel rotulo1, rotulo2, rotulo3,rotulo4,rotulo5,rotulo6,rotulo7;  
        private JTextField caixa1, caixa2,caixa3,caixa7;  
        private JButton botao1, botao; 
        private JPasswordField caixa6;
        JTextArea caixa4;
        private static EntityManagerFactory fabricaDeEntidades = null;  
      
        private static EntityManager gerenciador = null;  
 
        //ImageIcon icone5;  
        public InterfaceEmail(EntityManagerFactory fabricaDeEntidades2, EntityManager gerenciador2) throws Exception {  
            super("Envio de Email");  
            Container tela = getContentPane();  
      
            tela.setLayout(null);  
            fabricaDeEntidades=fabricaDeEntidades2;  
            gerenciador=gerenciador2;   
            //icone5 = new ImageIcon("100.gif");  
            botao1 = new JButton ("Enviar");  
            botao = new JButton ("Teste");
   
           // botao6 = new JButton (icone5);  
      
            rotulo1 = new JLabel("Remetente:");  
            rotulo2 = new JLabel("Destinatário:");  
            rotulo3 = new JLabel("Assunto:");  
            rotulo4 = new JLabel("Mensagem:");  
            rotulo5 = new JLabel("Tipo de Email:");
            rotulo6 = new JLabel("Senha:");
            rotulo7 = new JLabel("Seleciona Arquivo:");
            

            
            String[] add = {"Hotmail", "Gmail","Bol","Ibest","Ig"};
    		final JComboBox j = new JComboBox(add);
    		j.addActionListener(null);
      
            caixa1 = new JTextField();  
            caixa2 = new JTextField();  
            caixa3 = new JTextField();
            caixa4 = new JTextArea(); 
            caixa6 = new JPasswordField();
           caixa7 = new JTextField();
      
            //botao1 = new JButton("Incluir");  
            //botao2 = new JButton("Alterar");  
            //botao3 = new JButton("Excluir");  
            //botao5 = new JButton("Sair");  
            //botao4 = new JButton("Listar Contas");  
            //botao6 = new JButton("Gerar Relatório");  
      
            // coluna, linha, largura, altura  
            rotulo1.setBounds(24, 40, 70, 20);  
            caixa1.setBounds(95, 40, 390, 20);  
      
            botao1.setBounds(24, 250, 70, 40);  
            botao.setBounds(300, 160, 70, 20); 
         
      
            rotulo2.setBounds(24, 70, 100, 20);  
            caixa2.setBounds(100, 70, 384, 20);  
              
            rotulo3.setBounds(24, 100, 60, 20);  
            caixa3.setBounds(75, 100, 410, 20);  
              
            rotulo4.setBounds(24, 190, 100, 20);  
            caixa4.setBounds(100, 190, 380, 250);  
              
            rotulo5.setBounds(24, 10, 100, 20);  
            j.setBounds(105, 10, 100, 20);  
            
            rotulo6.setBounds(24, 130, 100, 20);  
            caixa6.setBounds(65,130, 160, 20);  
            
            rotulo7.setBounds(24, 160, 120, 20);  
            caixa7.setBounds(130,160, 160, 20); 
              
  
            tela.add(rotulo1);  
            tela.add(caixa1);  
      
            //tela.add(rotulo2);  
            //tela.add(caixa2);  
      
            tela.add(botao1);  
            tela.add(botao);
 
           // tela.add(botao6);  
      
            tela.add(rotulo2);  
            tela.add(caixa2);  
              
            tela.add(rotulo3);  
            tela.add(caixa3);  
              
            tela.add(rotulo4);  
            tela.add(caixa4);  
              
            tela.add(rotulo5);  
            tela.add(j); 
            
            tela.add(rotulo6);
            tela.add(caixa6);
              
            tela.add(rotulo7);
            tela.add(caixa7);
            
            
            botao.addActionListener(new ActionListener() {    
                public void actionPerformed(ActionEvent e) { 

                			String url = "";  
                			  
                			JFileChooser chooser = new JFileChooser();    
                			int returnVal = chooser.showOpenDialog(caixa7);    
                			if(returnVal == JFileChooser.APPROVE_OPTION) {    
                			    url = chooser.getSelectedFile().getPath();  
                			}    
                			FileDataSource fds = new FileDataSource(url);
                			
                }  
                
            }); 
                  
            botao1.addActionListener(new ActionListener() {    
                public void actionPerformed(ActionEvent e) {
                    Properties props = new Properties();    
                    if (j.getSelectedItem().equals("Hotmail")) {    
                        /** Parâmetros de conexão com servidor Hotmail */    
                        props.put("mail.transport.protocol", "smtp");    
                        props.put("mail.smtp.host", "smtp.live.com");    
                        props.put("mail.smtp.socketFactory.port", "587");    
                        props.put("mail.smtp.socketFactory.fallback", "false");    
                        props.put("mail.smtp.starttls.enable", "true");    
                        props.put("mail.smtp.auth", "true");    
                        props.put("mail.smtp.port", "587");    
                    } else if (j.getSelectedItem().equals("Gmail")) {    
                        props.put("mail.smtp.auth", "true");    
                        props.put("mail.smtp.starttls.enable", "true");    
                        props.put("mail.smtp.host", "smtp.gmail.com");    
                        props.put("mail.smtp.port", "587");    
                    } else if (j.getSelectedItem().equals("Bol")) {    
                        props.put("mail.smtp.auth", "true");    
                        props.put("mail.smtp.starttls.enable", "true");    
                        props.put("mail.smtp.host", "smtps.bol.com.br");    
                        props.put("mail.smtp.port", "587");    
                    } else if (j.getSelectedItem().equals("Ibest")) {    
                        props.put("mail.smtp.auth", "true");    
                        props.put("mail.smtp.starttls.enable", "true");    
                        props.put("mail.smtp.host", "smtp.ibest.com.br");    
                        props.put("mail.smtp.port", "587");    
                    } else if (j.getSelectedItem().equals("Ig")) {    
                        props.put("mail.smtp.auth", "true");    
                        props.put("mail.smtp.starttls.enable", "true");    
                        props.put("mail.smtp.host", "smtp.ig.com.br");    
                        props.put("mail.smtp.port", "587");    
                    }    

                        Session session = Session.getInstance(props,    
                                new javax.mail.Authenticator() {    
                                    protected PasswordAuthentication getPasswordAuthentication() {    
                                        return new PasswordAuthentication(caixa1    
                                                .getText(), caixa6.getText());    
                                    }    
                                });   
        
                        try {    
        
                            Message message = new MimeMessage(session);    
                            message.setFrom(new InternetAddress(caixa1.getText()));    
                            message.setRecipients(Message.RecipientType.TO,    
                                    InternetAddress.parse(caixa2.getText()));    
                            message.setSubject(caixa3.getText());    
                            message.setText(caixa4.getText());  
                            
                           
                            MimeBodyPart mbp2 = new MimeBodyPart();
                            FileDataSource fds = new FileDataSource("");      
                           mbp2.setDataHandler(new DataHandler(fds));      
                            mbp2.setFileName(fds.getName());     
            
                           Multipart mp = new MimeMultipart();      
                           mp.addBodyPart(mbp2);      
                      
                            
        
                            Transport.send(message);    
        
                            JOptionPane.showMessageDialog(null,    
                                    "Email Enviado com Sucesso");    
        
                        } catch (MessagingException e1) {    
                            throw new RuntimeException(e1);    
                        }    
                
                    }    
        
            });   
 
            // setSize(largura, altura);  
            setSize(500, 500);  
            setVisible(true);  
            setLocationRelativeTo(null);  
        }  
      
        public static void main(String[] args) throws Exception {  
      
            fabricaDeEntidades = Persistence  
                    .createEntityManagerFactory("TurmaN40PostgreSQL");  
      
            gerenciador = fabricaDeEntidades.createEntityManager();  
      
            InterfaceEmail app = new InterfaceEmail(fabricaDeEntidades, gerenciador);  
            app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
      
        }  
    }
romarcio

Você precisa criar uma variável de instancia em sua classe para receber a url selecionada, depois é só setar essa variável no método de envio do email.
Com algo assim:

private String urlAnexo;

	botao.addActionListener(new ActionListener() {    
		public void actionPerformed(ActionEvent e) { 
			JFileChooser chooser = new JFileChooser();
			int returnVal = chooser.showOpenDialog(caixa7);
			if(returnVal == JFileChooser.APPROVE_OPTION) {
			    urlAnexo = chooser.getSelectedFile().getPath());
                            caixa7.setText(urlAnexo);
			}
		}                
	});
	
	botao1.addActionListener(new ActionListener() {    
		public void actionPerformed(ActionEvent e) {    
			Properties props = new Properties();    
			if (j.getSelectedItem().equals("Hotmail")) {    
				/** Parâmetros de conexão com servidor Hotmail */    
				props.put("mail.transport.protocol", "smtp");    
				props.put("mail.smtp.host", "smtp.live.com");    
				props.put("mail.smtp.socketFactory.port", "587");    
				props.put("mail.smtp.socketFactory.fallback", "false");    
				props.put("mail.smtp.starttls.enable", "true");    
				props.put("mail.smtp.auth", "true");    
				props.put("mail.smtp.port", "587");    
			} else if (j.getSelectedItem().equals("Gmail")) {    
				props.put("mail.smtp.auth", "true");    
				props.put("mail.smtp.starttls.enable", "true");    
				props.put("mail.smtp.host", "smtp.gmail.com");    
				props.put("mail.smtp.port", "587");    
			} else if (j.getSelectedItem().equals("Bol")) {    
				props.put("mail.smtp.auth", "true");    
				props.put("mail.smtp.starttls.enable", "true");    
				props.put("mail.smtp.host", "smtps.bol.com.br");    
				props.put("mail.smtp.port", "587");    
			} else if (j.getSelectedItem().equals("Ibest")) {    
				props.put("mail.smtp.auth", "true");    
				props.put("mail.smtp.starttls.enable", "true");    
				props.put("mail.smtp.host", "smtp.ibest.com.br");    
				props.put("mail.smtp.port", "587");    
			} else if (j.getSelectedItem().equals("Ig")) {    
				props.put("mail.smtp.auth", "true");    
				props.put("mail.smtp.starttls.enable", "true");    
				props.put("mail.smtp.host", "smtp.ig.com.br");    
				props.put("mail.smtp.port", "587");    
			}    

			Session session = Session.getInstance(props,    
					new javax.mail.Authenticator() {    
						protected PasswordAuthentication getPasswordAuthentication() {    
							return new PasswordAuthentication(caixa1    
									.getText(), caixa6.getText());    
						}    
					});   

			try {    

				Message message = new MimeMessage(session);    
				message.setFrom(new InternetAddress(caixa1.getText()));    
				message.setRecipients(Message.RecipientType.TO,    
						InternetAddress.parse(caixa2.getText()));    
				message.setSubject(caixa3.getText());    
				message.setText(caixa4.getText());  
				
			   
				MimeBodyPart mbp2 = new MimeBodyPart();
				FileDataSource fds = new FileDataSource(urlAnexo);      
				mbp2.setDataHandler(new DataHandler(fds));      
				mbp2.setFileName(fds.getName());     

				Multipart mp = new MimeMultipart();      
				mp.addBodyPart(mbp2);  

				Transport.send(message);    

				JOptionPane.showMessageDialog(null,    
						"Email Enviado com Sucesso");    

			} catch (MessagingException e1) {    
				throw new RuntimeException(e1);    
			}   
		
		}    
	
	});
D
botao.addActionListener(new ActionListener() {      
                public void actionPerformed(ActionEvent e) {   
                    JFileChooser chooser = new JFileChooser();  
                    int returnVal = chooser.showOpenDialog(caixa7);  
                    if(returnVal == JFileChooser.APPROVE_OPTION) {  
                    	String urlAnexo = chooser.getSelectedFile().getPath();  
                                    caixa7.setText(urlAnexo);  
                    }  
                }                  
            });  
                  
            botao1.addActionListener(new ActionListener() {      
                public void actionPerformed(ActionEvent e) {      
                    Properties props = new Properties();      
                    if (j.getSelectedItem().equals("Hotmail")) {      
                        /** Parâmetros de conexão com servidor Hotmail */      
                        props.put("mail.transport.protocol", "smtp");      
                        props.put("mail.smtp.host", "smtp.live.com");      
                        props.put("mail.smtp.socketFactory.port", "587");      
                        props.put("mail.smtp.socketFactory.fallback", "false");      
                        props.put("mail.smtp.starttls.enable", "true");      
                        props.put("mail.smtp.auth", "true");      
                        props.put("mail.smtp.port", "587");      
                    } else if (j.getSelectedItem().equals("Gmail")) {      
                        props.put("mail.smtp.auth", "true");      
                        props.put("mail.smtp.starttls.enable", "true");      
                        props.put("mail.smtp.host", "smtp.gmail.com");      
                        props.put("mail.smtp.port", "587");      
                    } else if (j.getSelectedItem().equals("Bol")) {      
                        props.put("mail.smtp.auth", "true");      
                        props.put("mail.smtp.starttls.enable", "true");      
                        props.put("mail.smtp.host", "smtps.bol.com.br");      
                        props.put("mail.smtp.port", "587");      
                    } else if (j.getSelectedItem().equals("Ibest")) {      
                        props.put("mail.smtp.auth", "true");      
                        props.put("mail.smtp.starttls.enable", "true");      
                        props.put("mail.smtp.host", "smtp.ibest.com.br");      
                        props.put("mail.smtp.port", "587");      
                    } else if (j.getSelectedItem().equals("Ig")) {      
                        props.put("mail.smtp.auth", "true");      
                        props.put("mail.smtp.starttls.enable", "true");      
                        props.put("mail.smtp.host", "smtp.ig.com.br");      
                        props.put("mail.smtp.port", "587");      
                    }      
          
                    Session session = Session.getInstance(props,      
                            new javax.mail.Authenticator() {      
                                protected PasswordAuthentication getPasswordAuthentication() {      
                                    return new PasswordAuthentication(caixa1      
                                            .getText(), caixa6.getText());      
                                }      
                            });     
          
                    try {      
          
                        Message message = new MimeMessage(session);      
                        message.setFrom(new InternetAddress(caixa1.getText()));      
                        message.setRecipients(Message.RecipientType.TO,      
                                InternetAddress.parse(caixa2.getText()));      
                        message.setSubject(caixa3.getText());      
                        message.setText(caixa4.getText());    
                          
                         
                        MimeBodyPart mbp2 = new MimeBodyPart();  
                        File urlAnexo = null;
						FileDataSource fds = new FileDataSource(urlAnexo);        
                        mbp2.setDataHandler(new DataHandler(fds));        
                        mbp2.setFileName(fds.getName());       
          
                        Multipart mp = new MimeMultipart();        
                        mp.addBodyPart(mbp2);    
          
                        Transport.send(message);      
          
                        JOptionPane.showMessageDialog(null,      
                                "Email Enviado com Sucesso");      
          
                    } catch (MessagingException e1) {      
                        throw new RuntimeException(e1);      
                    }     
                  
                }      
              
            });

ta assim o codigo agora mais ta dando esse erro

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.activation.FileDataSource.getName(Unknown Source)
at InterfaceEmail$2.actionPerformed(InterfaceEmail.java:218)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

romarcio

Ta errado seu código. Você precisa colocar a variável urlAnexo como variável de instancia e não como uma variável local como você fez aqui:

botao.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showOpenDialog(caixa7); if(returnVal == JFileChooser.APPROVE_OPTION) { String urlAnexo = chooser.getSelectedFile().getPath(); caixa7.setText(urlAnexo); } } });
Coloca a variável com de instancia:

private JLabel rotulo1, rotulo2, rotulo3,rotulo4,rotulo5,rotulo6,rotulo7;
    private JTextField caixa1, caixa2,caixa3,caixa7;
    private JButton botao1, botao;
    private JPasswordField caixa6;
    JTextArea caixa4;

    private String urlAnexo; // aqui você deve inserir ela. Para que todos os métodos da classe tenham acesso a ela e a seu valor.
D

ta enviando o email mais nao esta anexando rsrs ta selecionando o arquivo certinho mais nao anexa o arquivo no email nao sei que estou errando ai neste codigo :(

essa parte aqui provavelmente esta errada nao esta entrando codigo so que nao sei que que posso muda ou adiciona nesta parte pra funciona.

MimeBodyPart mbp2 = new MimeBodyPart();   
                        FileDataSource fds = new FileDataSource(urlAnexo);         
                        mbp2.setDataHandler(new DataHandler(fds));         
                        mbp2.setFileName(fds.getName());       
          
                        Multipart mp = new MimeMultipart();         
                        mp.addBodyPart(mbp2);
D

esta parte acima é a parte que deveria anexar e funcionar

romarcio

Faltou você anexar o anexo ao objeto da mensagem. Para isso, insira essa linha:message.setContent(mp); antes da linha:Transport.send(message);

D

agora sim esta enviando anexo muito bom obrigada xD

Criado 27 de junho de 2012
Ultima resposta 29 de jun. de 2012
Respostas 18
Participantes 2