Java Reference
In-Depth Information
public class EmailErrorNotifier implements ErrorNotifier {
...
private SimpleMailMessage copyErrorMailMessage;
public void setCopyErrorMailMessage(SimpleMailMessage copyErrorMailMessage) {
this.copyErrorMailMessage = copyErrorMailMessage;
}
public void notifyCopyError(String srcDir, String destDir, String filename) {
SimpleMailMessage message = new SimpleMailMessage(copyErrorMailMessage);
message.setText(String.format(
copyErrorMailMessage.getText(), srcDir, destDir, filename));
mailSender.send(message);
}
}
Sending MIME Messages
So far, the SimpleMailMessage class you used can send only a simple plain text e-mail message. To
send e-mail that contains HTML content, inline images, or attachments, you have to construct and send
a MIME message instead. MIME is supported by JavaMail through the javax.mail.internet.MimeMessage
class.
First of all, you have to use the JavaMailSender interface instead of its parent interface MailSender .
The JavaMailSenderImpl instance you injected does implement this interface, so you needn't modify
your bean configurations. The following notifier sends Spring's bean configuration file as an e-mail
attachment to the administrator:
package com.apress.springenterpriserecipes.replicator;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.core.io.ClassPathResource;
import org.springframework.mail.MailParseException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
public class EmailErrorNotifier implements ErrorNotifier {
private JavaMailSender mailSender;
private SimpleMailMessage copyErrorMailMessage;
public void setMailSender( JavaMailSender mailSender) {
this.mailSender = mailSender;
}
public void setCopyErrorMailMessage(SimpleMailMessage copyErrorMailMessage) {
this.copyErrorMailMessage = copyErrorMailMessage;
}
Search WWH ::




Custom Search