title: How to send mail with multiple attachments in java
body: <p>I have here can send mail with multiple attachment:</p>
  
  <pre><code>Properties props = System.getProperties();
  String host = "smtp.gmail.com";
  props.put("mail.smtp.starttls.enable", "true");
  props.put("mail.smtp.host", host);
  props.put("mail.smtp.user", from);
  props.put("mail.smtp.password", pass);
  props.put("mail.smtp.port", "587");
  props.put("mail.smtp.auth", "true");
  
  Session session = Session.getDefaultInstance(props);
  MimeMessage message = new MimeMessage(session);
  Multipart multipart = new MimeMultipart();
  
  // creates body part for the message
  MimeBodyPart messageBodyPart = new MimeBodyPart();
  messageBodyPart.setContent(message, "text/html");
  
  //set message body
  BodyPart msgBodyPart = new MimeBodyPart();
  msgBodyPart.setText(body);
  multipart.addBodyPart(msgBodyPart);
  msgBodyPart = new MimeBodyPart();
  
  //attach file
  DataSource source = new FileDataSource(attachFile);
  messageBodyPart.setDataHandler(new DataHandler(source));
  messageBodyPart.setFileName(attachFile);
  multipart.addBodyPart(messageBodyPart);
  
  //attach file 2
  source = new FileDataSource(attachFile2);
  BodyPart messageBodyPart2 = new MimeBodyPart();
  messageBodyPart2.setDataHandler(new DataHandler(source));
  messageBodyPart2.setFileName(attachFile2);
  multipart.addBodyPart(messageBodyPart2);
  
  try {
      message.setFrom(new InternetAddress(from));
      InternetAddress[] toAddress = new InternetAddress[to.length];
  
        // To get the array of addresses
      for( int i = 0; i &lt; to.length; i++ ) {
          toAddress[i] = new InternetAddress(to[i]);
      }
  
      for( int i = 0; i &lt; toAddress.length; i++) {
          message.addRecipient(Message.RecipientType.TO, toAddress[i]);
      }
  } catch (MessagingException ex) {
      ex.printStackTrace();
  }
  
  message.setSubject(subject);
  message.setContent(multipart);
  Transport transport = session.getTransport("smtp");
  transport.connect(host, from, pass);
  transport.sendMessage(message, message.getAllRecipients());
  transport.close();
  </code></pre>
  
  <p>But the problem is how can I add multiple attachments? I don't know if i can declare many variable or put it on array. The code can only include 2 attachments what if 5 or any in every send of the email.</p>