All Downloads are FREE. Search and download functionalities are using the official Maven repository.

in.clouthink.daas.edm.email.impl.EmailSenderImpl Maven / Gradle / Ivy

package in.clouthink.daas.edm.email.impl;

import java.util.Date;

import javax.activation.DataHandler;
import javax.mail.Address;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessagePreparator;

import in.clouthink.daas.edm.Listenable;
import in.clouthink.daas.edm.email.EmailMessage;
import in.clouthink.daas.edm.email.EmailSender;

public class EmailSenderImpl implements EmailSender {
    
    private JavaMailSender mailSender;
    
    public EmailSenderImpl(JavaMailSender mailSender) {
        this.mailSender = mailSender;
    }
    
    @Listenable
    @Override
    public void send(final EmailMessage emailMessage) {
        mailSender.send(new MimeMessagePreparator() {
            
            @Override
            public void prepare(MimeMessage message) throws Exception {
                String from = emailMessage.getFrom();
                String sender = emailMessage.getSender();
                String to = emailMessage.getTo();
                String subject = emailMessage.getSubject();
                String body = emailMessage.getMessage();
                
                InternetAddress fromAddress = new InternetAddress(from, sender);
                message.setRecipient(javax.mail.Message.RecipientType.TO,
                                     new InternetAddress(to));
                message.setFrom(fromAddress);
                message.setReplyTo(new Address[] { fromAddress });
                message.setSubject(subject);
                message.setSentDate(new Date());
                message.setDataHandler(new DataHandler(body,
                                                       "text/html; charset=UTF-8"));
            }
        });
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy