简体   繁体   中英

JAVA MAIL API : Unable to attach xls file to Mail

My below Java class has to copy a text file content and mail to recipients, along with a attached xls file,using java mail.

Now I can read and Mail the text file content but unable to attach the xls file.

Below are my snippet:

static void sendmail() throws IOException,     
MessagingException,AddressException,FileNotFoundException
   {

          DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy 
HH:mm:ss");
          Calendar cal = Calendar.getInstance();
            String to1=getOrderinfo.to1;
            String to2 = getOrderinfo.to2;
            String to3 = getOrderinfo.to3; 
            String to4 = getOrderinfo.to4;
            String from =getOrderinfo.from;
            String host = getOrderinfo.host;
            Properties properties = System.getProperties();
            properties.setProperty("mail.smtp.host", host);
            Session session = Session.getDefaultInstance(properties);
            MimeMessage message = new MimeMessage(session); 
             Multipart multipart = new MimeMultipart();



            String pathLogFile = "E:/car_failed_report/log.txt";

            try {

                    message.setFrom(new InternetAddress(from));   
                    message.addRecipient(Message.RecipientType.TO, new 
InternetAddress(to1));
                   message.setSubject(" CAR NOT YET INTEGRATED REPORT at 
: "+dateFormat.format(cal.getTime()));
                    StringBuffer sb = new StringBuffer();
                    FileInputStream fstream = new 
FileInputStream(pathLogFile);
                    BufferedReader br = new BufferedReader(new 
InputStreamReader(fstream));

                    String singleLine;
                    while ((singleLine = br.readLine()) != null) 
                    {

                        sb.append(singleLine + "<br>");
                       // CarParser1.sb1.append(singleLine +"<br>");
                    }
                    br.close();
                    String allLines;

                   allLines = sb.toString();


                    String allLines_html=" <html><head><title></title> 
</head>"
                            + "<body >"+allLines+"</body ></html>";
                  message.setContent(allLines_html, "text/html; 
charset=ISO-8859-1");

                 MimeBodyPart attachPart = new MimeBodyPart();
                File attachement = new File("E:\\car_failed_report
\\failed.xls");
                if (attachement.exists()) {
                    attachPart.attachFile(attachement);
                } else {
                    System.out.println("ERROR READING THE FILE");
                    throw new FileNotFoundException();
                }

                 Transport.send(message);



                System.out.println("Email Sent successfully....");


                System.out.println();

            } 
            catch(FileNotFoundException f1)
            {
                System.out.println("File not yet created..this is from 
mailer class");

                return;
            }
            catch (MessagingException mex) 
            {
                System.out.println("Invalid Email Address.please provide 
a valid email id to send with");
                mex.printStackTrace();


            }

Can any one Help me to attach the xls file.?

Thanks in advance.

You created the body part with the attachment but didn't add it to the message. Replace your code starting with message.setContent:

            MimeMultipart mp = new MimeMultipart();
            MimeBodyPart body = new MimeBodyPart();
            body.setText(allLines_html, "iso-8859-1", "html");
            mp.addBodyPart(body);

            MimeBodyPart attachPart = new MimeBodyPart();
            File attachement = new File("E:\\car_failed_report\\failed.xls");
            if (attachement.exists()) {
                attachPart.attachFile(attachement);
                mp.addBodyPart(attachPart);
            } else {
                System.out.println("ERROR READING THE FILE");
                throw new FileNotFoundException();
            }
            message.setContent(mp);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM