Email


tenho esse codigo para enviar arquivo no email juntamente com a mensagem


        BodyPart messageBodyPart = new MimeBodyPart();     
               messageBodyPart.setText(message);

        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(messageBodyPart);

       
    // arquivo="C:\\teste\\arquivo.txt";
        
        messageBodyPart = new MimeBodyPart();
        String filename = arquivo;//"C:\\teste\\imagem.gif";  no lugar do arquivo colocando o caminho funciona
        DataSource source = new FileDataSource(filename);
        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName(filename);
        multipart.addBodyPart(messageBodyPart);
     
        msg.setContent(multipart);

e esse metedo para ecolher o arquivo

  JFileChooser jf = new JFileChooser();
        jf.setFileSelectionMode(JFileChooser.FILES_ONLY);
       
            if (jf.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
               arquivo = jf.getSelectedFile().getAbsolutePath()   ;
                System.out.print(arquivo);

porem o 

String filename = arquivo;//"C:\\teste\\imagem.gif";
é uma string e eu nao consigo pegar o caminho dela para passar para o filename alguem ajuda ai

arquivo = jf.getSelectedFile().getAbsolutePath()   ; essa linha me retorna C:\teste.imagem.gif o que resulta erro porque tem que ser assim C:\\teste\\imagem.gif";

:?:

any problem!?

Minha bolinha de cristal quebrou semana passada, então não tenho como adivinhar as coisas. :lol: :lol:

Coloca sua dúvida ai, para poder te ajudar.

Aproveita e separa o código do seu texto. Fica muito dificil de ler do jeito que vc postou.


JFileChooser jf = new JFileChooser();   
        jf.setFileSelectionMode(JFileChooser.FILES_ONLY);   
         
            if (jf.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {   
               arquivo = jf.getSelectedFile().getAbsolutePath()   ;   
                System.out.print(arquivo); 

me retorna c:\teste\imagem.gif o caminho do arquivo

mas eu passando a variavel arquivo para 

     Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(messageBodyPart);
        
        messageBodyPart = new MimeBodyPart();
        String filename = arquivo;
        DataSource source = new FileDataSource(filename); //aqui a variavel arquivo
        messageBodyPart.setDataHandler(new DataHandler(source));

da erro porque a variavel arquivo possui c:\teste\imagem.gif

quando eu faço assim arquivo = "C:\\teste\\imagem.gif"; ai funciona perfeitamente com 2 barras ao invez de 1 unica entendeu

Fabio,

  1. Não é para cercar todo seu post com as tags CODE, mas apenas o código.
  2. Se você quer um método que duplique os “”, está aqui:
public static String duplicaContrabarras (String str) {
    return str.replace ("\\", "\\\\");
}

mas acredito que não resolva seu problema.