package com.gr.project.service; import javax.annotation.Resource; import javax.ejb.Asynchronous; import javax.ejb.Stateless; import javax.enterprise.event.Observes; import javax.inject.Inject; import javax.inject.Named; import javax.mail.Address; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage.RecipientType; import javax.ws.rs.core.MediaType; import com.gr.project.model.Email; /** * Session Bean implementation class MailService */ @Stateless public class MailService { @Resource(mappedName = "java:/mail/gmail") private Session session; @Inject @Named("default.encoding") private String defaultEncoding; @Asynchronous public void send(@Observes Email email) { try { MimeMessage msg = new MimeMessage(session); msg.setHeader("Content-Type", "text/html;charset=UTF-8"); msg.setSubject(email.getSubject(), defaultEncoding); msg.setContent(email.getBody(), MediaType.TEXT_HTML); Address[] internetAdress; if (email.getAddress() != null) { internetAdress = new Address[email.getAddress().size()]; for (int i = 0; i < email.getAddress().size(); i++) { internetAdress[i] = new InternetAddress(email.getAddress() .get(i)); } msg.setRecipients(RecipientType.TO, internetAdress); } Transport.send(msg); } catch (MessagingException e) { System.out.println(e); } } }