Subversion Repositories SmartDukaan

Rev

Rev 11215 | Rev 11275 | 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.security.Security;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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.PasswordAuthentication;
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 EmailUtils {
        public static void main(String... args) throws IOException, MessagingException{

                System.out.println("Test Email Start");
                String[] sendTo = { "vikram.raghav@shop2020.in"};
                EmailUtils emailUtils = new EmailUtils();
                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 void sendEmail(String recipients[], String subject, String body, String from, String filename,String htmlFileName) throws MessagingException {
                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");

                        }

                        Message msg = prepareMessage(recipients, subject, from);
                        //Create the multi-part object to hold the text and attachment parts
                        Multipart multipart = new MimeMultipart();

                        MimeBodyPart htmlPart = new MimeBodyPart();

                        htmlPart.setContent(htmlContent.toString(), "text/html; charset=utf-8");

                        // create the message part
                        MimeBodyPart messageBodyPart = new MimeBodyPart();
                        //Part 1: Text message
                        messageBodyPart.setText(body);
                        multipart.addBodyPart(htmlPart);
                        //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);
                        // Put parts in message
                        msg.setContent(multipart);
                        Transport.send(msg);
                } catch (Exception e) {
                }
        }
        private Message prepareMessage(String[] recipients, String subject,
                        final String from) throws AddressException,
                        MessagingException {
                Properties props = new Properties();
                props.put("mail.smtp.host","localhost");
                Session session = Session.getDefaultInstance(props,null);

                Message msg = new MimeMessage(session);

                //Set the from address
                InternetAddress addressFrom = new InternetAddress(from);
                msg.setFrom(addressFrom);
                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);

                //Setting the Subject
                msg.setSubject(subject);
                return msg;
        }
        private boolean hasMultipleDomains(String[] recipients) {
                String domain = extractDomainFromEmailAddress(recipients[0]);
                for (String recipient : recipients) {
                        if (!domain.equals(extractDomainFromEmailAddress(recipient))) {
                                return true;
                        }
                }

                return false;
        }

        private String extractDomainFromEmailAddress(String recipient) {
                return recipient.split("@")[1];
        }

        private Map<String, List<String>> getReceipientsPerDomain(String[] recipients) {
                Map<String, List<String>> result = new HashMap<String, List<String>>();
                for (String recipient : recipients) {
                        String domain = extractDomainFromEmailAddress(recipient);

                        if (!result.containsKey(domain)) {
                                result.put(domain, new ArrayList<String>());
                        }

                        result.get(domain).add(recipient);
                }

                return result;
        }



}