Java 为电子邮件实现Spring引导服务
我想创建Spring引导服务,该服务将用于应用程序: 具有SNMTP服务器配置的主类:Java 为电子邮件实现Spring引导服务,java,spring-boot,Java,Spring Boot,我想创建Spring引导服务,该服务将用于应用程序: 具有SNMTP服务器配置的主类: public class MailConfiguration { public MailConfiguration() { // TODO add configuration for SNMP server } } 每种情况下具有特定主体的类: public class NewUserNotifier extends MailConfiguration{ publ
public class MailConfiguration {
public MailConfiguration() {
// TODO add configuration for SNMP server
}
}
每种情况下具有特定主体的类:
public class NewUserNotifier extends MailConfiguration{
public void sendNewUserNotifier() {
// TODO Implement here logic
}
}
public class TransactionLimitsNotifier extends MailConfiguration {
public void sendTransactionLimitsNotifier() {
// TODO Implement here logic
}
}
如何实现Spring服务,当我可以使用一个主类来配置我所需时,我可以使用@Autowire调用它?您不需要扩展包含电子邮件配置的类。您只需在其中创建一个方法并用
@Bean
对其进行注释,然后spring将在使用@Autowired
调用它的任何地方注入它的实例
在pom.xml中添加此依赖项(如果尚未添加):
这是您需要的配置。将此bean添加到具有@Configuration
注释的类中:
@Bean
public JavaMailSender getJavaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.gmail.com");
mailSender.setPort(587);
mailSender.setUsername("my.gmail@gmail.com");
mailSender.setPassword("password");
Properties props = mailSender.getJavaMailProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.debug", "true");
return mailSender;
}
然后,要发送电子邮件,您需要将JavaMailSender
注入到一个带有@Component
注释的类中(@Service
、@Controller
和@Repository
都是组件),然后开始发送电子邮件:
@Autowired
public JavaMailSender emailSender;
public void sendSimpleMessage(
String to, String subject, String text) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(to);
message.setSubject(subject);
message.setText(text);
emailSender.send(message);
}
请参阅文章Spring Boot Freemarker电子邮件模板
@Bean
public JavaMailSender getJavaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.gmail.com");
mailSender.setPort(587);
mailSender.setUsername("my.gmail@gmail.com");
mailSender.setPassword("password");
Properties props = mailSender.getJavaMailProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.debug", "true");
return mailSender;
}
@Autowired
public JavaMailSender emailSender;
public void sendSimpleMessage(
String to, String subject, String text) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(to);
message.setSubject(subject);
message.setText(text);
emailSender.send(message);
}