I have a mail service class which sends email using Gmail SMTP, it has been working successfully till the recent past, the same class is not able to send e-mails and I don't even see any error messages when I debug or run this code. Any idea, what is happening?
public class MailService {
public static void sendEmail(String subject, String msgBody, String[] toEmails,
String[] ccEmails, String[] bccEmails,
String fromEmail, String toName){
Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable", true); // added this line
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.user", "mygmail-id");
props.put("mail.smtp.password", "mypassword");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", true);
Session session = Session.getInstance(props,null);
List<InternetAddress> toAdresses = null;
List<InternetAddress> ccAdresses = null;
List<InternetAddress> bccAdresses = null;
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(fromEmail));
toAdresses = new ArrayList<InternetAddress>();
ccAdresses = new ArrayList<InternetAddress>();
bccAdresses = new ArrayList<InternetAddress>();
for(String toEmail: toEmails){
toAdresses.add(new InternetAddress(toEmail));
}
if(ccEmails != null && ccEmails.length > 0)
for(String ccEmail: ccEmails){
ccAdresses.add(new InternetAddress(ccEmail));
}
if(bccEmails != null && bccEmails.length > 0)
for(String bccEmail: bccEmails){
bccAdresses.add(new InternetAddress(bccEmail));
}
msg.addRecipients(Message.RecipientType.TO,
toAdresses.toArray(new InternetAddress[toAdresses.size()]));
msg.addRecipients(Message.RecipientType.CC,
ccAdresses.toArray(new InternetAddress[ccAdresses.size()]));
msg.addRecipients(Message.RecipientType.BCC,
bccAdresses.toArray(new InternetAddress[bccAdresses.size()]));
msg.setSubject(subject);
msg.setContent(msgBody, "text/html");
Transport.send(msg);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
// ...
}
}