- 创建邮件消息:
- 首先,通过
javaMailSender.createMimeMessage()
创建一个MimeMessage
对象,这是JavaMail API中用于表示电子邮件消息的对象。
- 首先,通过
- 配置邮件消息:
- 使用
MimeMessageHelper
来简化对MimeMessage
对象的配置。通过传递MimeMessage
对象和true
(表示邮件是多部分的,即可以包含文本和附件等)来创建MimeMessageHelper
实例。 - 通过
helper.setFrom(appConfig.getSendUsername())
设置发件人地址,这里假设appConfig
是一个配置类,getSendUsername()
方法返回发件人的邮箱地址。 - 通过
helper.setTo(toEmail)
设置收件人地址,toEmail
是方法参数,表示要发送邮件的目标邮箱。
- 使用
- 邮件主题和内容:
- 这里创建了一个
SysSettingDto
对象sysSettingDto
,但实际上并没有看到它被初始化或加载任何数据。在实际应用中,你可能需要从数据库或配置文件中加载这些设置。 helper.setSubject(sysSettingDto.getRegisterEmailTitle())
设置邮件的主题,这里假设getRegisterEmailTitle()
方法返回注册邮件的主题。helper.setText(String.format(sysSettingDto.getRegisterEmailContent(), code))
设置邮件的正文。这里使用String.format
方法将验证码code
插入到邮件模板中,getRegisterEmailContent()
方法应该返回一个包含占位符(如%s
)的字符串,用于插入验证码。
- 这里创建了一个
- 设置发送日期:
helper.setSentDate(new Date())
设置邮件的发送日期为当前日期和时间。然而,这个设置通常是由邮件服务器在邮件实际发送时自动添加的,因此在客户端代码中设置它可能不是必需的。
- 发送邮件:
- 最后,通过
javaMailSender.send(message)
发送邮件。javaMailSender
是一个JavaMailSender
接口的实现,用于发送邮件。
- 最后,通过
- 异常处理:
- 如果在发送邮件过程中发生任何异常,将捕获该异常并使用
logger.error("邮件发送失败", e);
记录错误日志。然后,抛出一个FastException
异常,表示邮件发送失败。
- 如果在发送邮件过程中发生任何异常,将捕获该异常并使用
完整代码如下:
private void sendMailCode(String toEmail, String code) {
try {
//创建邮件对象
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
//设置发件人
helper.setFrom(appConfig.getSendUsername());
//设置收件的邮件地址
helper.setTo(toEmail);
//给收件的邮箱设置提示信息
SysSettingDto sysSettingDto = new SysSettingDto();
helper.setSubject(sysSettingDto.getRegisterEmailTitle());
//设置邮件正文和发送日期
helper.setText(String.format(sysSettingDto.getRegisterEmailContent(), code));
helper.setSentDate(new Date());
//发送邮件
javaMailSender.send(message);
} catch (Exception e) {
logger.error("邮件发送失败", e);
throw new FastException("邮件发送失败");
}
}
public class SysSettingDto implements Serializable {
private String registerEmailTitle = "邮箱验证码";
private String registerEmailContent = "您好,您的邮箱验证码是:%s,15分钟有效!";
private Integer userInitUseSpace = 5;
}