Subversion Repositories SmartDukaan

Rev

Rev 11178 | Rev 11215 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.utils;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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 EmailUtils {
        public static void main(String... args) throws IOException{

                System.out.println("Test Email Start");
                String[] sendTo = { "vikram.raghav@shop2020.in"};
                EmailUtils.sendEmail(sendTo,"------DONT PANIC--------TEST EMAIL--------","MAIL Body","build@shop2020.in","/home/Mobiles-Tablets-FBA-Sale.xls","/home/Mobiles-Tablets-FBA-body.html");
                System.out.println("Test Email Sent");

        }

        /**
         * Utility method to send simple HTML email
         * @param session
         * @param toEmail
         * @param subject
         * @param body
         */
        public static void sendEmail(String[] toEmail, String subject, String body,String fromEmail,String filename,String htmlFileName){
                try
                {
                        BufferedReader bufferedReader = new BufferedReader(new FileReader(htmlFileName));
                        StringBuffer htmlContent = new StringBuffer();
                        String line = null;
                        while((line =bufferedReader.readLine())!=null){
                                htmlContent.append(line).append("\n");
                        }
                        Multipart multipart = new MimeMultipart();
                        MimeBodyPart htmlPart = new MimeBodyPart();
                        htmlPart.setContent(htmlContent.toString(), "text/html; charset=utf-8");
                        multipart.addBodyPart(htmlPart);
                        Properties props = System.getProperties();
                        String smtpHostServer = "localhost";
                        props.put("mail.smtp.host", smtpHostServer);
                        Session session = Session.getInstance(props, null);
                        MimeMessage msg = new MimeMessage(session);
                        //set message headers
                        msg.addHeader("Content-type", "text/HTML; charset=UTF-8");
                        msg.addHeader("format", "flowed");
                        msg.addHeader("Content-Transfer-Encoding", "8bit");

                        msg.setFrom(new InternetAddress(fromEmail, ""));

                        msg.setSubject(subject, "UTF-8");

                        msg.setText(body, "UTF-8");
                        
                        // create the message part 
                        MimeBodyPart messageBodyPart = new MimeBodyPart();
                        //Part 1: Text message
                        messageBodyPart.setText(body);
                        multipart.addBodyPart(messageBodyPart);
                        //Part 2: Attachment
                        messageBodyPart = new MimeBodyPart();
                        DataSource source = new FileDataSource(filename);
                        messageBodyPart.setDataHandler(new DataHandler(source));
                        String[] names = filename.split("/");
                        messageBodyPart.setFileName(names[names.length - 1]);
                        multipart.addBodyPart(messageBodyPart);
                        msg.setSentDate(new Date());
                        for(String email:toEmail){
                                msg.addRecipient(Message.RecipientType.TO,InternetAddress.parse(email)[0]);
                        }
                        System.out.println("Message is ready");
                        Transport.send(msg);  

                        System.out.println("EMail Sent Successfully!!");
                }
                catch (Exception e) {
                        e.printStackTrace();
                }
        }
}