title: Send a file as an attachment in java
body: <p>i have a java code in that i must send a <strong>attachment</strong>, it may be <strong>.doc,.db or .file</strong>. So i use the following code, the message was delivered successfully and particular attachment file was not send and also received.</p>
  
  <p>My Code is:</p>
  
  <pre><code>import java.util.Date;
  import java.util.Properties;
  
  import javax.activation.DataHandler;
  import javax.activation.FileDataSource;
  import javax.mail.Message;
  import javax.mail.Message.RecipientType;
  import javax.mail.MessagingException;
  import javax.mail.Multipart;
  import javax.mail.Session;
  import javax.mail.Transport;
  import javax.mail.internet.AddressException;
  import javax.mail.internet.InternetAddress;
  import javax.mail.internet.MimeBodyPart;
  import javax.mail.internet.MimeMessage;
  import javax.mail.internet.MimeMultipart;
  
  public class SendEmail {
  
      private String from = "example1@gmail.com";
      private String to;
      private String subject;
      private String text;
      String filename = "hardWare_Dtls.file";
      String host = "smtp.gmail.com";
  
      public SendEmail(String from, String to, String subject, String text,String filename) {
          // System.out.println("From Adress inside constr"+from);
          this.from = from;
          this.to = to;
          this.subject = subject;
          this.text = text;
          this.filename=filename;
      }
  
      public void send() {
  
          Properties props = System.getProperties();
          System.out.println("Email Options SendEmail");
          props.put("mail.smtp.host", host);
          props.put("mail.smtp.user", from);
          props.put("mail.smtp.password", "123456");
          props.put("mail.smtp.port", "587"); // 587 is the port number of yahoo
                                              // mail
          props.put("mail.smtp.auth", "true");
          props.put("mail.smtp.starttls.enable", "true");
  
          Session mailSession = Session.getDefaultInstance(props, null);
          Message simpleMessage = new MimeMessage(mailSession);
  
          InternetAddress fromAddress = null;
          InternetAddress toAddress = null;
          try {
              fromAddress = new InternetAddress(from);
              toAddress = new InternetAddress(to);
  
          } catch (AddressException e) {
              // TODO Auto-generated catch block
              // e.printStackTrace();
              System.out.println("Address Exception" + e.getMessage());
          }
  
          try {
              System.out.println("From Address" + fromAddress);
              simpleMessage.setFrom(fromAddress);
              simpleMessage.setRecipient(RecipientType.TO, toAddress);
              System.out.println("To Address" + toAddress);
              simpleMessage.setSubject(subject);
              simpleMessage.setText(text);
              simpleMessage.setSentDate(new Date());
  
               MimeBodyPart attachmentPart = new MimeBodyPart();
                  FileDataSource fileDataSource = new FileDataSource(filename) {
                      @Override
                      public String getContentType() {
                          return "application/octet-stream";
                      }
                  };
                  attachmentPart.setDataHandler(new DataHandler(fileDataSource));
                  attachmentPart.setFileName(filename);
  
                  Multipart multipart = new MimeMultipart();
                //  multipart.addBodyPart(messagePart);
                  multipart.addBodyPart(attachmentPart);
  
  
              // simpleMessage.setText(attachment);
  
              Transport transport = mailSession.getTransport("smtps");
              transport.connect("smtp.gmail.com", "example1@gmail.com",
                      "123456");
              simpleMessage.saveChanges();
              transport.sendMessage(simpleMessage,
                      simpleMessage.getAllRecipients());
               Transport.send(simpleMessage);
  
              transport.close();
              // Transport.send(simpleMessage);
          } catch (MessagingException e) {
              // TODO Auto-generated catch block
              // e.printStackTrace();
              System.out.println("Messagine Exception" + e.getMessage());
          }
      }
  
  }
  </code></pre>
  
  <p>in this code what mistake i had. If any other code for sending a message with attachment using Javacode, kindly send me. thanks in Advance.</p>
  
  <p>I use this code in my Main Class:</p>
  
  <pre><code>            String from = "example@gmail.com";
          String to = "example@yahoo.com";
          String subject = "Sample Text Message";
          String message = "Sample Msg with File attachment";
          String filename="hardWare_Dtls.file";
  
          SendEmail sendMail = new SendEmail(from, to, subject, message,filename);
          sendMail.send();
  </code></pre>