package com.console.app.service; import com.console.app.mtgapi.ApiRequest; import com.console.app.mtgapi.ApiResponse; import com.console.core.biz.MtEmailAuthenticator; import com.sun.mail.smtp.SMTPSSLTransport; import java.util.Properties; import javax.ejb.Stateless; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; /** * * @author Farouk Alhassan */ @Stateless public class EmailManagerImpl implements EmailManager { private static String SMTP_HOST_SERVER = "plus.smtp.mail.yahoo.com"; private static String POP3_SERVER = " plus.pop.mail.yahoo.com"; private static String SMTP_PORT = "465"; private static String POP3_PORT = "995"; private static String ACCOUNT_NAME ="MY_ACCOUNT_NAME"; private static String EMAIL_ADDRESS = "MY_ACCOUNT_NAME@yahoo.com"; private static String ACCOUNT_PASSWORD = "MY_PASSWORD"; private static String USE_AUTHENTICATION = "true"; private static String SMTP_USE_SSL = "true"; private static String POP3_USE_SSL = "true"; public void sendEmail(String to, String subject, String messageBody ) throws MessagingException, AddressException { // Setup mail server Properties props = System.getProperties(); props.put("mail.smtps.host", SMTP_HOST_SERVER); props.put("mail.smtps.port", SMTP_PORT); props.put("mail.smtps.auth", USE_AUTHENTICATION); props.put("mail.smtps.user", ACCOUNT_NAME); // Get a mail session Session session = Session.getDefaultInstance(props,null); //new MtEmailAuthenticator()); session.setDebug(true); // Define a new mail message Message message = new MimeMessage(session); message.setFrom(new InternetAddress(EMAIL_ADDRESS)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(subject); // Create a message part to represent the body text BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setContent(messageBody,"text/html"); //use a MimeMultipart as we need to handle the file attachments Multipart multipart = new MimeMultipart(); //add the message body to the mime message multipart.addBodyPart(messageBodyPart); // Put all message parts in the message message.setContent(multipart); // Send the message SMTPSSLTransport tr = (SMTPSSLTransport) session.getTransport("smtps"); tr.connect(SMTP_HOST_SERVER, ACCOUNT_NAME, ACCOUNT_PASSWORD); message.saveChanges(); tr.sendMessage(message, message.getAllRecipients()); tr.close(); } protected void addAtachments(String[] attachments, Multipart multipart) throws MessagingException, AddressException { for (int i = 0; i <= attachments.length - 1; i++) { String filename = attachments[i]; MimeBodyPart attachmentBodyPart = new MimeBodyPart(); //use a JAF FileDataSource as it does MIME type detection DataSource source = new FileDataSource(filename); attachmentBodyPart.setDataHandler(new DataHandler(source)); //assume that the filename you want to send is the same as the //actual file name - could alter this to remove the file path attachmentBodyPart.setFileName(filename); //add the attachment multipart.addBodyPart(attachmentBodyPart); } } }
Feel free to comment and let me know how I could have done this better
1 comment:
Thank You
Post a Comment