Showing posts with label mail in java. Show all posts
Showing posts with label mail in java. Show all posts

Saturday, 24 May 2014

Mail in java with multiple recipients,multiple cc with multiple file attachment

I am going to show you one simple Java program from which you can send email to multiple persons with multiple attachment,you can also add CC  to your mail from this program,
I will give you one general program which consist multiple recipients ,Multiple CC recipients and multiple file attachment
You can change it according to your preferences.


package com.sendMail;

import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

    public class sendMailWithAttach {
        private static String SMTP_HOST_NAME = "smtp.gmail.com";
        private static String SMTP_PORT = "587";
        private static  String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

        public static String  sendMail(String recipients[],String 
           ccrecipients[], String subject,String message, String sentfrom,
           String filepath1,String filepath2) throws MessagingException
          {
            boolean debug = true;
            String sendStatus=null;
            Properties props = new Properties();
            props.put("mail.smtp.host",SMTP_HOST_NAME);
            props.put("mail.smtp.auth", "true");
            props.put("mail.debug", "true");
            props.put("mail.smtp.port",SMTP_PORT);
            props.put("mail.oyazen.socketFactory.class", SSL_FACTORY);
            props.put("mail.smtp.starttls.enable", "true");
           // This block is used to create session event
            Session session = Session.getDefaultInstance(props,new
             javax.mail.Authenticator()
                  {
                    protected PasswordAuthentication getPasswordAuthentication()
                           {
                            return new
                            PasswordAuthentication("yourEmailId","password");
                            }
                    });
             // If you want to enable debug then set a session debug true,
             session.setDebug(debug);
             Message msg = new MimeMessage(session);
             InternetAddress addressFrom = new InternetAddress(sentfrom);
             msg.setFrom(addressFrom);
             InternetAddress[] addressCC = new
             InternetAddress[ccrecipients.length];
                 for (int i = 0; i < ccrecipients.length; i++)
                      {
                       addressCC[i] = new InternetAddress(ccrecipients[i]);
                      }
              msg.setRecipients(Message.RecipientType.CC,addressCC);
              InternetAddress[] addressTo = new InternetAddress[recipients.length];
                   for (int i = 0; i < recipients.length; i++)
                        {
                            addressTo[i] = new InternetAddress(recipients[i]);
                        }
               msg.setRecipients(Message.RecipientType.TO, addressTo);
               msg.setSubject(subject);
               BodyPart messageBodyPart1 = new MimeBodyPart();
               BodyPart messageBodyPart2 = new MimeBodyPart();
               BodyPart messageBodyPart3 = new MimeBodyPart();
               Multipart multipart = new MimeMultipart();
               MimeBodyPart htmlPart = new MimeBodyPart();
               htmlPart.setContent(message, "text/html");
                  multipart.addBodyPart(htmlPart);
                  //Creating config for two file
               FileDataSource fileDataSource1 =new FileDataSource(filepath1);
               messageBodyPart1.setDataHandler(new  
               DataHandler(fileDataSource1));
               messageBodyPart1.setFileName("FileFirst");
               multipart.addBodyPart(messageBodyPart1);
               FileDataSource fileDataSource2 =new FileDataSource(filepath2);
               messageBodyPart2.setDataHandler(new 
              DataHandler(fileDataSource2));
               messageBodyPart2.setFileName("FileSecond");
               multipart.addBodyPart(messageBodyPart2);
               msg.setContent(multipart);
                  try {
                       Transport.send(msg);
                       sendStatus="Mail Succes";
                       }
                       catch(Exception e) {
                            e.printStackTrace();
                       }
          return sendStatus;
     }
       
/**
 * Main method
 * */       
    public static void main(String args[])
        {
           String recipient[]={"abc@gmail.com","xyz@gmail.com"};
           String CCrecipient[]={"CCabc@gmail.com","CCxyz@gmail.com"};
           String sentfrom="FromMe@gmail.com";
           String subject="Testing";
           String message="hello PFA";
           String filepath1="/home/amit/Key.txt";
           String filepath2="/home/amit/Key.txt";
           try {
                String result=sendMail (
                 recipient,CCrecipient,subject,message,sentfrom,filepath1,filepath2);
            }
           catch (MessagingException e) {
                e.printStackTrace();
            }
       }
    }


Please let me know if you face any issue while running this example