Jul 11, 2024
application.properties file in src/main/resourcesspring.mail.host=smtp.gmail.com
spring.mail.port=587
[email protected]
spring.mail.password=your_app_password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
application.propertiesmodelMailStructure class inside the model package:
public class MailStructure {
private String subject;
private String message;
// Lombok annotations for getters and setters
@Getter @Setter
}
controllerMailController class inside the controller package:
@RestController
@RequestMapping("/mail")
public class MailController {
@Autowired
private MailService mailService;
@PostMapping("/send/{mail}")
public String sendMail(@PathVariable String mail, @RequestBody MailStructure mailStructure) {
mailService.sendMail(mail, mailStructure);
return "Mail sent successfully";
}
}
serviceMailService class inside the service package:
@Service
public class MailService {
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String fromMail;
public void sendMail(String toMail, MailStructure mailStructure) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(fromMail);
message.setTo(toMail);
message.setSubject(mailStructure.getSubject());
message.setText(mailStructure.getMessage());
mailSender.send(message);
}
}
http://localhost:8080/mail/send/{mailID}Content-Type: application/json{
"subject": "Testing",
"message": "This is a test mail"
}