Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

MimeBodyPart.setFileName() has extension "MIM'

843830Mar 2 2003 — edited Jun 1 2006
How do I preserve the original file's extension?
The following code (taken from JavaMail examples) attaches all files found in specified directory. The file names are OK, but the file extensions are all "MIM".
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.io.*;

public class MailAttach {
  public static void main (String args[]) throws Exception {

    if(args.length < 4) {
         System.out.println("MailAttach <host> <from> <to> <dir> [cc]") ;
         System.exit(1) ;
    }

    String host = args[0];
    String from = args[1];
    String to = args[2];
    String directory = args[3];

    System.out.println("host = " +host) ;
    System.out.println("from = " +from) ;
    System.out.println("to   = " +to) ;
    System.out.println("dir  = " +directory) ;

    String cc = null ;
    if (args.length > 4) {
         cc = args[4] ;
         System.out.println("cc   = " +cc) ;

    }

    Properties props = System.getProperties();

    props.put("mail.smtp.host", host);

    Session session = Session.getInstance(props, null);

    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.addRecipient(Message.RecipientType.TO,
      new InternetAddress(to));
    message.setSubject("Directory Attachments");

    if (cc != null) {
         message.setRecipients(Message.RecipientType.CC,
                                InternetAddress.parse(cc, false));
    }

    BodyPart messageBodyPart = new MimeBodyPart();

    messageBodyPart.setText("Directory: " + directory);

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

    File dir = new File(directory);
    String list[] = dir.list();

    for (int i=0, n=list.length; i<n; i++) {
      File f = new File(directory +"/" +list);
if (f.isFile()) {
System.out.println("Adding: " directory "/"+list[i]);
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(directory +"/" +list[i]);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(list[i]);
multipart.addBodyPart(messageBodyPart);
}
else {
System.out.println(f.toString() +" is not a file!") ;
}
}
message.setContent(multipart);

Transport.send(message);
System.out.println("Mail sent successfully") ;
}
}



Thanks
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 29 2006
Added on Mar 2 2003
3 comments
213 views