Subversion Repositories SmartDukaan

Rev

Rev 11214 | Rev 11224 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 11214 Rev 11215
Line 1... Line 1...
1
package in.shop2020.utils;
1
package in.shop2020.utils;
2
import java.io.BufferedReader;
2
import java.io.BufferedReader;
3
import java.io.FileNotFoundException;
3
import java.io.FileNotFoundException;
4
import java.io.FileReader;
4
import java.io.FileReader;
5
import java.io.IOException;
5
import java.io.IOException;
-
 
6
import java.security.Security;
-
 
7
import java.util.ArrayList;
6
import java.util.Date;
8
import java.util.Date;
-
 
9
import java.util.HashMap;
-
 
10
import java.util.List;
-
 
11
import java.util.Map;
7
import java.util.Properties;
12
import java.util.Properties;
8
 
13
 
9
import javax.activation.DataHandler;
14
import javax.activation.DataHandler;
10
import javax.activation.DataSource;
15
import javax.activation.DataSource;
11
import javax.activation.FileDataSource;
16
import javax.activation.FileDataSource;
12
import javax.mail.Message;
17
import javax.mail.Message;
13
import javax.mail.MessagingException;
18
import javax.mail.MessagingException;
14
import javax.mail.Multipart;
19
import javax.mail.Multipart;
-
 
20
import javax.mail.PasswordAuthentication;
15
import javax.mail.Session;
21
import javax.mail.Session;
16
import javax.mail.Transport;
22
import javax.mail.Transport;
-
 
23
import javax.mail.internet.AddressException;
17
import javax.mail.internet.InternetAddress;
24
import javax.mail.internet.InternetAddress;
18
import javax.mail.internet.MimeBodyPart;
25
import javax.mail.internet.MimeBodyPart;
19
import javax.mail.internet.MimeMessage;
26
import javax.mail.internet.MimeMessage;
20
import javax.mail.internet.MimeMultipart;
27
import javax.mail.internet.MimeMultipart;
21
 
28
 
22
public class EmailUtils {
29
public class EmailUtils {
23
	public static void main(String... args) throws IOException{
30
	public static void main(String... args) throws IOException{
24
 
31
 
25
		System.out.println("Test Email Start");
32
		System.out.println("Test Email Start");
26
		String[] sendTo = { "vikram.raghav@shop2020.in"};
33
		String[] sendTo = { "vikram.raghav@shop2020.in"};
-
 
34
		EmailUtils emailUtils = new EmailUtils();
27
		EmailUtils.sendEmail(sendTo,"------DONT PANIC--------TEST EMAIL--------","MAIL Body","build@shop2020.in","/home/Mobiles-Tablets-FBA-Sale.xls","/home/Mobiles-Tablets-FBA-body.html");
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");
28
		System.out.println("Test Email Sent");
36
		System.out.println("Test Email Sent");
29
 
37
 
30
	}
38
	}
31
 
39
 
32
	/**
40
	/**
Line 34... Line 42...
34
	 * @param session
42
	 * @param session
35
	 * @param toEmail
43
	 * @param toEmail
36
	 * @param subject
44
	 * @param subject
37
	 * @param body
45
	 * @param body
38
	 */
46
	 */
39
	public static void sendEmail(String[] toEmail, String subject, String body,String fromEmail,String filename,String htmlFileName){
47
	public  void sendEmail(String[] recipients, String subject, String body,String fromEmail,String filename,String htmlFileName){
40
		try
48
		try {
41
		{
-
 
42
			BufferedReader bufferedReader = new BufferedReader(new FileReader(htmlFileName));
49
			Message msg = prepareMessage(recipients, subject, fromEmail);
43
			StringBuffer htmlContent = new StringBuffer();
50
			//Create the multi-part object to hold the text and attachment parts
44
			String line = null;
-
 
45
			while((line =bufferedReader.readLine())!=null){
-
 
46
				htmlContent.append(line).append("\n");
-
 
47
			}
-
 
48
			Multipart multipart = new MimeMultipart();
51
			Multipart multipart = new MimeMultipart();
49
			MimeBodyPart htmlPart = new MimeBodyPart();
-
 
50
			htmlPart.setContent(htmlContent.toString(), "text/html; charset=utf-8");
-
 
51
			multipart.addBodyPart(htmlPart);
-
 
52
			Properties props = System.getProperties();
-
 
53
			String smtpHostServer = "localhost";
-
 
54
			props.put("mail.smtp.host", smtpHostServer);
-
 
55
			Session session = Session.getInstance(props, null);
-
 
56
			MimeMessage msg = new MimeMessage(session);
-
 
57
			//set message headers
-
 
58
			msg.addHeader("Content-type", "text/HTML; charset=UTF-8");
-
 
59
			msg.addHeader("format", "flowed");
-
 
60
			msg.addHeader("Content-Transfer-Encoding", "8bit");
-
 
61
 
-
 
62
			msg.setFrom(new InternetAddress(fromEmail, ""));
-
 
63
 
-
 
64
			msg.setSubject(subject, "UTF-8");
-
 
65
 
-
 
66
			msg.setText(body, "UTF-8");
-
 
67
			
-
 
68
			// create the message part 
52
			// create the message part 
69
			MimeBodyPart messageBodyPart = new MimeBodyPart();
53
			MimeBodyPart messageBodyPart = new MimeBodyPart();
70
			//Part 1: Text message
54
			//Part 1: Text message
71
			messageBodyPart.setText(body);
55
			messageBodyPart.setText(body);
72
			multipart.addBodyPart(messageBodyPart);
56
			multipart.addBodyPart(messageBodyPart);
Line 75... Line 59...
75
			DataSource source = new FileDataSource(filename);
59
			DataSource source = new FileDataSource(filename);
76
			messageBodyPart.setDataHandler(new DataHandler(source));
60
			messageBodyPart.setDataHandler(new DataHandler(source));
77
			String[] names = filename.split("/");
61
			String[] names = filename.split("/");
78
			messageBodyPart.setFileName(names[names.length - 1]);
62
			messageBodyPart.setFileName(names[names.length - 1]);
79
			multipart.addBodyPart(messageBodyPart);
63
			multipart.addBodyPart(messageBodyPart);
-
 
64
			// Put parts in message
80
			msg.setSentDate(new Date());
65
			msg.setContent(multipart);
81
			for(String email:toEmail){
66
			Transport.send(msg);
-
 
67
		} catch (Exception e) {
82
				msg.addRecipient(Message.RecipientType.TO,InternetAddress.parse(email)[0]);
68
			System.out.println("Cant send email");
83
			}
69
		}
84
			System.out.println("Message is ready");
-
 
85
			Transport.send(msg);  
-
 
86
 
70
 
-
 
71
	}
-
 
72
	private Message prepareMessage(String[] recipients, String subject,
-
 
73
			final String from) throws AddressException,
-
 
74
			MessagingException {
-
 
75
		Properties props = new Properties();
87
			System.out.println("EMail Sent Successfully!!");
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]);
-
 
87
		}
-
 
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
			}
88
		}
100
		}
-
 
101
 
-
 
102
		return false;
-
 
103
	}
-
 
104
 
-
 
105
	private String extractDomainFromEmailAddress(String recipient) {
89
		catch (Exception e) {
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
 
90
			e.printStackTrace();
118
			result.get(domain).add(recipient);
91
		}
119
		}
-
 
120
 
-
 
121
		return result;
92
	}
122
	}
-
 
123
 
-
 
124
 
-
 
125
 
93
}
126
}
94
127