5 Mayıs 2015 Salı

Spring MailPreparator

Application Context XML Content:
-beans-
    
    -bean id="propertyConfigurerFW" 
          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"-
        -property name="locations"-
            -list-
                -value-classpath:comrepkinresourcesapplicationContextFW.properties-value-
                -value-classpath:comrepkinresourcesldap.properties-value-
            -list-
Application Context X
        -property-       
        -property name="placeholderPrefix" value="["-        
        -property name="placeholderSuffix" value="]"-     
    -bean-


    -bean id="javaMailSenderImpl" scope="singleton" class="org.springframework.mail.javamail.JavaMailSenderImpl"-
        -property name="host" value="[smtp.host]"-
        -property name="port" value="[smtp.port]"-
          -property name="protocol" value="smtp"-        
        -property name="username" value="[smtp.username]"-
        -property name="password" value="[smtp.password]"-
    -bean-
    
    -bean id="mailPreparator" scope="singleton" class="com.repkin.mail.MailPreparator"-
        -property name="from" value="[smtp.from]" -
        -property name="charSet" value="[charSet]" -
    -bean-
    
    -context:component-scan base-package="com.repkin.mail"-

    -aop:aspectj-autoproxy proxy-target-class="true"-
        
-beans-

Mail Class Content:

package com.repkin.mail;
import java.util.ArrayList;
import java.util.List;
public class Mail {

   private    String                from;
   private    String                to;
   private    String                subject;
   private    String                text;
   private    List    attachments;

   public Attachment getNewAttachment(){
       return new Attachment();
   }

   public Mail() {
       attachments = new ArrayList();
   }
  
   public class Attachment {
       private    String fileName;
       private    String attachmentName;
   
       /*GETTERS AND SETTERS*/   
   }

   /*GETTERS AND SETTERS*/   
}


MailPreparator Class Content:

package com.repkin.mail;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Multipart;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import org.springframework.mail.javamail.MimeMessagePreparator;

import com.repkin.StringUtil;
import com.repkin.mail.Mail.Attachment;

public class MailPreparator implements MimeMessagePreparator {


private Mail  mail;
private String  from;
private String  charSet;

public void prepare(MimeMessage mimeMessage) throws Exception {
 mimeMessage.addFrom(InternetAddress.parse(getFrom()));
 mimeMessage.addRecipients(RecipientType.TO, mail.getTo());
 mimeMessage.setSubject(mail.getSubject(),getCharSet());
 mimeMessage.setText(mail.getText(),getCharSet());
 if(mail.getAttachments() != null && mail.getAttachments().size() > 0) {
  Multipart multipart = new MimeMultipart();
  MimeBodyPart messageText = new MimeBodyPart();
  messageText.setText(mail.getText(),getCharSet());
  multipart.addBodyPart(messageText);
  for (int i = 0; i < attachment =" mail.getAttachments().get(i);" mimebodypart =" new" filedatasource =" new">= 0) {
  return StringUtil.asNotNullString(attachment).substring(StringUtil.asNotNullString(attachment).lastIndexOf("/")+1);
 }
 return StringUtil.asNotNullString(attachment);
}

/*GETTERS AND SETTERS*/
}

MailServiceImpl Class Content:

package com.repkin.mail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Service;

@Service("mailService")
@Scope("singleton")
public class MailServiceImpl implements MailService {
    private    JavaMailSenderImpl javaMailSenderImpl;
    private    MailPreparator mailPreparator;
 
    public void sendMail(Mail mail) {
        try {
            validateMail(mail);
            mailPreparator.setMail(mail);
            javaMailSenderImpl.setDefaultEncoding("UTF-8");
            javaMailSenderImpl.send(mailPreparator);
        } catch (Exception e) {
        }
    }

    public void validateMail(Mail mail){

    }

    @Autowired
    public void setJavaMailSenderImpl(JavaMailSenderImpl javaMailSenderImpl) {
        this.javaMailSenderImpl = javaMailSenderImpl;
    }

    @Autowired
    public void setMailPreparator(MailPreparator mailPreparator) {
        this.mailPreparator = mailPreparator;
    }
}

Hiç yorum yok:

Yorum Gönder