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