19.1.2 装配和使用邮件发送器

邮件发送器已经配置完成,现在需要将其装配到使用它的 bean 中了。在 Spittr 应用程序中,最适合发送 Email 的是 SpitterEmailServiceImpl 类。这个类有一个 mailSender属性,它使用了 @Autowired 注解:

@Autowired
JavaMailSender mailSender;

当 Spring 将 SpitterEmailServiceImpl 创建为一个 bean 的时候,它将查找实现了 MailSender 的 bean,这样的 bean 可以装配到 mailSender 属性中。它将会找到我们在前边配置的 mailSender bean 并使用它。mailSender bean 装配完成后,我们就可以构建和发送 Email 了。

我们想要给 Spitter 用户发送 Email 提示他的朋友写了新的 Spittle,所以我们需要一个方法来发送 Email,这个方法要接受 Email 地址和 Spittle 对象信息。如下的 sendSimpleSpittleEmail() 方法使用邮件发送器完成了该功能:

程序清单 19.1 使用 Spring 的 MailSender 发送 Email
public void sendSimpleSpittleEmail(String to, Spittle spittle) {
  SimpleMailMessage message = new SimpleMailMessage();
  String spitterName = spittle.getSpitter().getFullName();
  message.setFrom("noreply@spitter.com");
  message.setTo(to);
  message.setSubject("New spittle from " + spitterName);
  message.setText(spitterName + " says: " + spittle.getText());
  mailSender.send(message);
}

sendSimpleSpittleEmail() 方法所做的第一件事就是构造 SimpleMailMessage 实例。正如其名称所示,这个对象可以很便捷地发送 Email 消息。

接下来,将设置消息的细节。通过邮件消息的 setFrom() 和 setTo() 方法指定了 Email 的发送者和接收者。在通过 setSubject() 方法设置完主题后,虚拟的 “信封” 已经完成了。剩下的就是调用 setText() 方法来设置消息的内容。

最后一步是将消息传递给邮件发送器的 send() 方法,这样邮件就发送出去了。

现在,我们已经配置好了邮件发送器并使用它来发送简单的 Email 消息。可以看到,使用 Spring 的 Email 抽象非常简单。我们可以到此为止并转到下一章,但是如果这样的话将会错过 Spring Email 抽象中很有意思的内容。让我们更进一步,看一下如何添加附件并创建丰富内容的 Email 消息。

Last updated