title: Sending an email with an attachment using javamail API
body: <p>I am trying to send an email with an attachment file in Java.</p>
  
  <p>When I send the email without an attachment I receive the email, but when I add the attachment I don't receive anything and I don't get any error messages.</p>
  
  <p>This is the code I am using:</p>
  
  <pre><code>public void send () throws AddressException, MessagingException{
      //system properties
  
  Properties  props = new Properties();
  props.put("mail.smtp.localhost", "localhost"); 
  props.put("mail.smtp.host",Configurations.getInstance().email_serverIp); 
  
  
  /*
   *  create some properties and get the default Session
   */
  session = Session.getDefaultInstance(props, null);
  
  //session
  Session session = Session.getInstance(props, null);
  
  Message message = new MimeMessage(session);
  message.setFrom(new InternetAddress("zouhaier.mhamdi@gmail.com"));
  message.setRecipients(Message.RecipientType.TO,
          InternetAddress.parse("zouhaier.mhamdi@gmail.com"));
  message.setSubject("Testing Subject");
  message.setText("PFA");
  
  MimeBodyPart messageBodyPart = new MimeBodyPart();
  
  Multipart multipart = new MimeMultipart();
     generateCsvFile("/tmp/test.csv"); 
  messageBodyPart = new MimeBodyPart();
  String file = "/tmp/test.csv";
  String fileName = "test.csv"; 
  DataSource source = new FileDataSource(file);
  messageBodyPart.setDataHandler(new DataHandler(source));
  messageBodyPart.setFileName(fileName);
  multipart.addBodyPart(messageBodyPart);
  
  message.setContent(multipart);
  
  System.out.println("Sending");
  
  Transport.send(message);
  
  System.out.println("Done");
  
  }
  
  private static void generateCsvFile(String sFileName)
  {
      try
      {
  
      FileWriter writer = new FileWriter(sFileName);
  
      writer.append("DisplayName");
      writer.append(',');
      writer.append("Age");
      writer.append(',');
      writer.append("YOUR NAME");
      writer.append(',');
  
      writer.append('\n');
      writer.append("Zou");
      writer.append(',');
      writer.append("26");
      writer.append(',');
      writer.append("zouhaier");
  
  
      //generate whatever data you want
  
      writer.flush();
      writer.close();
      }
      catch(IOException e)
      {
           e.printStackTrace();
      } 
   }
  </code></pre>
  
  <p>How can I correct this?</p>