Skip to content

Commit 3d8ff37

Browse files
[BAEL-8315] How to resolve "Could not autowire org.springframework.mail.javamail.JavaMailSender" (#18600)
- implement Email sender application
1 parent 1583397 commit 3d8ff37

File tree

5 files changed

+83
-0
lines changed

5 files changed

+83
-0
lines changed

spring-boot-modules/spring-boot-mvc-5/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@
5757
<groupId>org.springframework.boot</groupId>
5858
<artifactId>spring-boot-starter-validation</artifactId>
5959
</dependency>
60+
<dependency>
61+
<groupId>org.springframework.boot</groupId>
62+
<artifactId>spring-boot-starter-mail</artifactId>
63+
</dependency>
6064
</dependencies>
6165

6266
<build>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.baeldung.email.application;
2+
3+
import org.springframework.boot.CommandLineRunner;
4+
import org.springframework.boot.SpringApplication;
5+
import org.springframework.boot.autoconfigure.SpringBootApplication;
6+
7+
import com.baeldung.email.service.EmailService;
8+
9+
@SpringBootApplication(scanBasePackages = { "com.baeldung.email.service" })
10+
public class EmailSenderApplication implements CommandLineRunner {
11+
12+
private final EmailService emailService;
13+
14+
public EmailSenderApplication(EmailService emailService) {
15+
this.emailService = emailService;
16+
}
17+
18+
public static void main(String[] args) {
19+
SpringApplication.run(EmailSenderApplication.class, args);
20+
}
21+
22+
@Override
23+
public void run(String... args) {
24+
emailService.sendSimpleEmail("[email protected]", "Test Subject", "Testing the Spring Boot Email!");
25+
}
26+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.baeldung.email.config;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
import org.springframework.mail.javamail.JavaMailSender;
6+
import org.springframework.mail.javamail.JavaMailSenderImpl;
7+
8+
@Configuration
9+
public class EmailConfiguration {
10+
11+
@Bean
12+
public JavaMailSender javaMailSender() {
13+
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
14+
mailSender.setHost("localhost");
15+
mailSender.setPort(1025);
16+
17+
return mailSender;
18+
}
19+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.baeldung.email.service;
2+
3+
import org.springframework.mail.SimpleMailMessage;
4+
import org.springframework.mail.javamail.JavaMailSender;
5+
import org.springframework.stereotype.Service;
6+
7+
@Service
8+
public class EmailService {
9+
10+
private static final String NOREPLY_ADDRESS = "[email protected]";
11+
12+
private final JavaMailSender javaMailSender;
13+
14+
public EmailService(final JavaMailSender javaMailSender) {
15+
this.javaMailSender = javaMailSender;
16+
}
17+
18+
public void sendSimpleEmail(String to, String subject, String text) {
19+
20+
SimpleMailMessage message = new SimpleMailMessage();
21+
message.setFrom(NOREPLY_ADDRESS);
22+
message.setTo(to);
23+
message.setSubject(subject);
24+
message.setText(text);
25+
26+
javaMailSender.send(message);
27+
}
28+
}

spring-boot-modules/spring-boot-mvc-5/src/main/resources/application.properties

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,9 @@ logging.level.org.springframework.web.servlet.mvc=TRACE
1717
# Either extend global exception handler from ResponseEntityExceptionHandler
1818
# Else use this property to enable problemdetails
1919
# spring.mvc.problemdetails.enabled=true
20+
21+
# Mail
22+
spring.mail.host=localhost
23+
spring.mail.port=1025
24+
spring.mail.username=
25+
spring.mail.password=

0 commit comments

Comments
 (0)