Java Reference
In-Depth Information
public void notifyCopyError(String srcDir, String destDir, String filename) {
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(copyErrorMailMessage.getFrom());
helper.setTo(copyErrorMailMessage.getTo());
helper.setSubject(copyErrorMailMessage.getSubject());
helper.setText(String.format(
copyErrorMailMessage.getText(), srcDir, destDir, filename));
ClassPathResource config = new ClassPathResource("beans.xml");
helper.addAttachment("beans.xml", config);
} catch (MessagingException e) {
throw new MailParseException(e);
}
mailSender.send(message);
}
}
Unlike
SimpleMailMessage
, the
MimeMessage
class is defined by JavaMail, so you can only instantiate
it by calling
mailSender.createMimeMessage()
. Spring provides the helper class
MimeMessageHelper
to
simplify the operations of
MimeMessage
. It allows you to add an attachment from a Spring
Resource
object. However, the operations of this helper class still throw JavaMail's
MessagingException
. You have
to convert this exception into Spring's mail runtime exception for consistency.
Spring offers another method for you to construct a MIME message, which is through implementing
the
MimeMessagePreparator
interface.
package com.apress.springenterpriserecipes.replicator;
...
import javax.mail.internet.MimeMessage;
import org.springframework.mail.javamail.MimeMessagePreparator;
public class EmailErrorNotifier implements ErrorNotifier {
...
public void notifyCopyError(
final String
srcDir,
final
String destDir,
final
String filename) {
MimeMessagePreparator preparator = new
MimeMessagePreparator() {
public void
prepare
(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper helper =
new MimeMessageHelper(mimeMessage, true);
helper.setFrom(copyErrorMailMessage.getFrom());
helper.setTo(copyErrorMailMessage.getTo());
helper.setSubject(copyErrorMailMessage.getSubject());
helper.setText(String.format(
copyErrorMailMessage.getText(), srcDir, destDir, filename));
ClassPathResource config = new ClassPathResource("beans.xml");
helper.addAttachment("beans.xml", config);
}
};
Search WWH ::
Custom Search