2012-12-19 2 views
0

ce que cela signifie en java ... je l'ai vu quelque chose de nouveau je havn't vu quelque chose comme ça avant ... ce code envoie un mail en utilisant le cadre de printemps javamailsender classecourrier feuillue classe expéditeur à l'aide cadre de printemps

public MimeMessagePreparator buildMimeMessagePreparator(final HashMap<String,Object> props) { 
    MimeMessagePreparator preparator = new MimeMessagePreparator() { 
     public void prepare(MimeMessage mimeMessage) throws Exception { 
      EmailTarget emailUser = (EmailTarget) props.get(EmailPropertyType.USER.getType()); 
      EmailInfo info = (EmailInfo) props.get(EmailPropertyType.INFO.getType()); 
      MimeMessageHelper message = new MimeMessageHelper(mimeMessage, (info.getAttachments() != null && info.getAttachments().size() > 0)); 
      message.setTo(emailUser.getEmailAddress()); 
      message.setFrom(info.getFromAddress()); 
      message.setSubject(info.getSubject()); 
      if (emailUser.getBCCAddresses() != null && emailUser.getBCCAddresses().length > 0) { 
       message.setBcc(emailUser.getBCCAddresses()); 
      } 
      if (emailUser.getCCAddresses() != null && emailUser.getCCAddresses().length > 0) { 
       message.setCc(emailUser.getCCAddresses()); 
      } 
      String messageBody = info.getMessageBody(); 
      if (messageBody == null) {     
       messageBody = buildMessageBody(info, props); 
      } 
      message.setText(messageBody, true); 
      for (Attachment attachment : info.getAttachments()) { 
       ByteArrayDataSource dataSource = new ByteArrayDataSource(attachment.getData(), attachment.getMimeType()); 
       message.addAttachment(attachment.getFilename(), dataSource); 
      } 
     } 
    }; // why there is a semicolon here 
    return preparator; 

} 

Répondre

2

Si vous n'êtes pas sûr du point-virgule, le code crée une classe interne anonyme qui est une sous-classe de MimeMessagePreparator. Le point-virgule est la fin de l'affectation à la variable préparateur.

Questions connexes