JavaMailSenderImpl上的MessaginException
我正在尝试使用org.springframework.mail.MailSender发送电子邮件 我在以下类中配置了MailSender和MessageSource bean:JavaMailSenderImpl上的MessaginException,java,spring,jakarta-mail,spring-messaging,mail-sender,Java,Spring,Jakarta Mail,Spring Messaging,Mail Sender,我正在尝试使用org.springframework.mail.MailSender发送电子邮件 我在以下类中配置了MailSender和MessageSource bean: @Configuration public class MailProvider { @Bean(name = "mailSender") public MailSender javaMailService() { JavaMailSenderImpl javaMailSender = new Java
@Configuration
public class MailProvider {
@Bean(name = "mailSender")
public MailSender javaMailService() {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost("smtp.gmail.com");
javaMailSender.setPort(587);
javaMailSender.setProtocol("smtp");
Properties mailProperties = new Properties();
mailProperties.put("mail.smtp.auth", Boolean.TRUE);
mailProperties.put("mail.transport.protocol", "smtp");
mailProperties.put("mail.smtp.starttls.enable", Boolean.TRUE);
mailProperties.put("mail.smtp.debug", Boolean.TRUE);
javaMailSender.setJavaMailProperties(mailProperties);
return javaMailSender;
}
@Bean
public MessageSource messageSource() {
final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setUseCodeAsDefaultMessage(true);
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(0);
return messageSource;
}
@Bean
public PostUserListener getListener() {
return new PostUserListener();
}
@Bean(name = "email")
public SimpleMailMessage getMessage() {
return new SimpleMailMessage();
}
}
在应用程序部署(tomcat)期间,我捕获异常:
java.lang.NoClassDefFoundError: javax/mail/MessagingException
at ru.spb.dreamwhite.config.MailProvider.javaMailService(MailProvider.java:23)
Caused by: java.lang.ClassNotFoundException: javax.mail.MessagingException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
我使用上述bean的类:
@Component
public class PostUserListener implements ApplicationListener<OnPostUserDataEvent> {
private static Logger logger = Logger.getLogger(PostUserListener.class.getName());
@Autowired
SimpleMailMessage email;
@Autowired
private MailSender mailSender;
@Override
public void onApplicationEvent(OnPostUserDataEvent onPostUserDataEvent) {
this.confirmPost(onPostUserDataEvent);
}
private void confirmPost(OnPostUserDataEvent onPostUserDataEvent) {
logger.info("new user " + onPostUserDataEvent.getUser().getName() + " is created");
User user = onPostUserDataEvent.getUser();
String recipient = user.getEmail();
String subject = "Registration Confirmation";
String url = onPostUserDataEvent.getAppUrl();
String message = "Thank you for registering. Please click on the below link to activate your account";
email.setTo(recipient);
email.setSubject(subject);
email.setText(message + "http://localhost:8080" + url);
mailSender.send(email);
}
}
@组件
公共类positionrListener实现ApplicationListener{
私有静态记录器Logger=Logger.getLogger(posteSerListener.class.getName());
@自动连线
简单电子邮件;
@自动连线
私人邮件发送者;
@凌驾
ApplicationEvent上的公共无效(OnPostUserDataEvent OnPostUserDataEvent){
此.confirmPost(onPostUserDataEvent);
}
私有void confirmPost(OnPostUserDataEvent OnPostUserDataEvent){
logger.info(“创建了新用户”+onPostUserDataEvent.getUser().getName()+”;
User User=onposturedataevent.getUser();
字符串recipient=user.getEmail();
字符串subject=“注册确认”;
字符串url=onPostUserDataEvent.getAppUrl();
String message=“感谢您的注册。请单击下面的链接激活您的帐户”;
email.setTo(收件人);
email.setSubject(主题);
email.setText(消息+”http://localhost:8080“+url);
邮件发送者。发送(电子邮件);
}
}
我无法理解信息例外的本质。这是否意味着遗漏了该类异常。或者它意味着其他类型的问题?…这意味着类路径中没有必需的依赖项。在本例中javax.mail-您使用Spring Boot吗?我不使用Spring BootСПабббббб,бббббббббб,П107!