Subversion Repositories SmartDukaan

Rev

Rev 11214 | Rev 11224 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
11178 vikram.rag 1
package in.shop2020.utils;
2
import java.io.BufferedReader;
3
import java.io.FileNotFoundException;
4
import java.io.FileReader;
5
import java.io.IOException;
11215 vikram.rag 6
import java.security.Security;
7
import java.util.ArrayList;
11178 vikram.rag 8
import java.util.Date;
11215 vikram.rag 9
import java.util.HashMap;
10
import java.util.List;
11
import java.util.Map;
11178 vikram.rag 12
import java.util.Properties;
13
 
14
import javax.activation.DataHandler;
15
import javax.activation.DataSource;
16
import javax.activation.FileDataSource;
17
import javax.mail.Message;
11214 vikram.rag 18
import javax.mail.MessagingException;
11178 vikram.rag 19
import javax.mail.Multipart;
11215 vikram.rag 20
import javax.mail.PasswordAuthentication;
11178 vikram.rag 21
import javax.mail.Session;
22
import javax.mail.Transport;
11215 vikram.rag 23
import javax.mail.internet.AddressException;
11178 vikram.rag 24
import javax.mail.internet.InternetAddress;
25
import javax.mail.internet.MimeBodyPart;
26
import javax.mail.internet.MimeMessage;
27
import javax.mail.internet.MimeMultipart;
28
 
29
public class EmailUtils {
30
	public static void main(String... args) throws IOException{
31
 
32
		System.out.println("Test Email Start");
33
		String[] sendTo = { "vikram.raghav@shop2020.in"};
11215 vikram.rag 34
		EmailUtils emailUtils = new EmailUtils();
35
		emailUtils.sendEmail(sendTo,"------DONT PANIC--------TEST EMAIL--------","MAIL Body","build@shop2020.in","/home/Mobiles-Tablets-FBA-Sale.xls","/home/Mobiles-Tablets-FBA-body.html");
11178 vikram.rag 36
		System.out.println("Test Email Sent");
37
 
38
	}
39
 
40
	/**
41
	 * Utility method to send simple HTML email
42
	 * @param session
43
	 * @param toEmail
44
	 * @param subject
45
	 * @param body
46
	 */
11215 vikram.rag 47
	public  void sendEmail(String[] recipients, String subject, String body,String fromEmail,String filename,String htmlFileName){
48
		try {
49
			Message msg = prepareMessage(recipients, subject, fromEmail);
50
			//Create the multi-part object to hold the text and attachment parts
11214 vikram.rag 51
			Multipart multipart = new MimeMultipart();
11178 vikram.rag 52
			// create the message part 
53
			MimeBodyPart messageBodyPart = new MimeBodyPart();
54
			//Part 1: Text message
55
			messageBodyPart.setText(body);
56
			multipart.addBodyPart(messageBodyPart);
57
			//Part 2: Attachment
58
			messageBodyPart = new MimeBodyPart();
59
			DataSource source = new FileDataSource(filename);
60
			messageBodyPart.setDataHandler(new DataHandler(source));
61
			String[] names = filename.split("/");
62
			messageBodyPart.setFileName(names[names.length - 1]);
63
			multipart.addBodyPart(messageBodyPart);
11215 vikram.rag 64
			// Put parts in message
65
			msg.setContent(multipart);
66
			Transport.send(msg);
67
		} catch (Exception e) {
68
			System.out.println("Cant send email");
69
		}
11178 vikram.rag 70
 
11215 vikram.rag 71
	}
72
	private Message prepareMessage(String[] recipients, String subject,
73
			final String from) throws AddressException,
74
			MessagingException {
75
		Properties props = new Properties();
76
		props.put("mail.smtp.host","localhost");
77
		Session session = Session.getDefaultInstance(props,null);
78
 
79
		Message msg = new MimeMessage(session);
80
 
81
		//Set the from address
82
		InternetAddress addressFrom = new InternetAddress(from);
83
		msg.setFrom(addressFrom);
84
		InternetAddress[] addressTo = new InternetAddress[recipients.length];
85
		for (int i = 0; i < recipients.length; i++) {
86
			addressTo[i] = new InternetAddress(recipients[i]);
11178 vikram.rag 87
		}
11215 vikram.rag 88
		msg.setRecipients(Message.RecipientType.TO, addressTo);
89
 
90
		//Setting the Subject
91
		msg.setSubject(subject);
92
		return msg;
93
	}
94
	private boolean hasMultipleDomains(String[] recipients) {
95
		String domain = extractDomainFromEmailAddress(recipients[0]);
96
		for (String recipient : recipients) {
97
			if (!domain.equals(extractDomainFromEmailAddress(recipient))) {
98
				return true;
99
			}
11178 vikram.rag 100
		}
11215 vikram.rag 101
 
102
		return false;
11178 vikram.rag 103
	}
11215 vikram.rag 104
 
105
	private String extractDomainFromEmailAddress(String recipient) {
106
		return recipient.split("@")[1];
107
	}
108
 
109
	private Map<String, List<String>> getReceipientsPerDomain(String[] recipients) {
110
		Map<String, List<String>> result = new HashMap<String, List<String>>();
111
		for (String recipient : recipients) {
112
			String domain = extractDomainFromEmailAddress(recipient);
113
 
114
			if (!result.containsKey(domain)) {
115
				result.put(domain, new ArrayList<String>());
116
			}
117
 
118
			result.get(domain).add(recipient);
119
		}
120
 
121
		return result;
122
	}
123
 
124
 
125
 
11178 vikram.rag 126
}