> For the complete documentation index, see [llms.txt](https://potoyang.gitbook.io/spring-in-action-v4/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://potoyang.gitbook.io/spring-in-action-v4/untitled-12/untitled-3/untitled.md).

# 19.1.2　装配和使用邮件发送器

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

```java
@Autowired
JavaMailSender mailSender;
```

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

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

{% code title="程序清单 19.1 使用 Spring 的 MailSender 发送 Email" %}

```java
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);
}
```

{% endcode %}

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

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

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

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