· 9 years ago · Apr 16, 2017, 12:32 PM
1package com.app.utils;
2
3import javax.mail.Message;
4import javax.mail.MessagingException;
5import javax.mail.Session;
6import javax.mail.Transport;
7import javax.mail.internet.AddressException;
8import javax.mail.internet.InternetAddress;
9import javax.mail.internet.MimeMessage;
10import java.util.Properties;
11
12
13public class Mail {
14
15 private static String USER_NAME = "yourcarserviceapp"; // GMail user name (just the part before "@gmail.com")
16 private static String PASSWORD = "asdfghjkl123456789"; // GMail password
17
18
19 public static void sendFromGMail(String[] to, String subject, String body) {
20 Properties props = System.getProperties();
21 String host = "smtp.gmail.com";
22 setProps(props, host);
23
24 Session session = Session.getDefaultInstance(props);
25 MimeMessage message = new MimeMessage(session);
26
27 try {
28 sendMultipleRecipent(to, subject, body, host, session, message);
29 }
30 catch (AddressException ae) {
31 ae.printStackTrace();
32 }
33 catch (MessagingException me) {
34 me.printStackTrace();
35 }
36 }
37
38 public static void sendFromGMail(String to, String subject, String body){
39 Properties props = System.getProperties();
40 String host = "smtp.gmail.com";
41 setProps(props, host);
42
43 Session session = Session.getDefaultInstance(props);
44 MimeMessage message = new MimeMessage(session);
45
46 try {
47 sendSingleRecipent(to, subject, body, host, session, message);
48 }
49 catch (AddressException ae) {
50 ae.printStackTrace();
51 }
52 catch (MessagingException me) {
53 me.printStackTrace();
54 }
55 }
56
57 private static void sendSingleRecipent(String to, String subject, String body, String host, Session session, MimeMessage message) throws MessagingException {
58 message.setFrom(new InternetAddress(USER_NAME));
59 InternetAddress[] toAddress = new InternetAddress[1];
60
61
62 toAddress[0] = new InternetAddress(to);
63
64
65
66 message.addRecipient(Message.RecipientType.TO, toAddress[0]);
67
68
69 message.setSubject(subject);
70 message.setText(body);
71 Transport transport = session.getTransport("smtp");
72 transport.connect(host, USER_NAME, PASSWORD);
73 transport.sendMessage(message, message.getAllRecipients());
74 transport.close();
75 }
76
77 private static void sendMultipleRecipent(String[] to, String subject, String body, String host, Session session, MimeMessage message) throws MessagingException {
78 message.setFrom(new InternetAddress(USER_NAME));
79 InternetAddress[] toAddress = new InternetAddress[to.length];
80
81 // To get the array of addresses
82 for( int i = 0; i < to.length; i++ ) {
83 toAddress[i] = new InternetAddress(to[i]);
84 }
85
86 for( int i = 0; i < toAddress.length; i++) {
87 message.addRecipient(Message.RecipientType.TO, toAddress[i]);
88 }
89
90 message.setSubject(subject);
91 message.setText(body);
92 Transport transport = session.getTransport("smtp");
93 transport.connect(host, USER_NAME, PASSWORD);
94 transport.sendMessage(message, message.getAllRecipients());
95 transport.close();
96 }
97
98 private static void setProps(Properties props, String host) {
99 props.put("mail.smtp.starttls.enable", "true");
100 props.put("mail.smtp.host", host);
101 props.put("mail.smtp.user", USER_NAME);
102 props.put("mail.smtp.password", PASSWORD);
103 props.put("mail.smtp.port", "587");
104 props.put("mail.smtp.auth", "true");
105 }
106}