Q1. How does Spring support email sending?
Spring provides a MailSender interface (JavaMailSenderImpl) for sending emails. It abstracts the underlying JavaMail API, making it easier to send simple or MIME messages. You configure a mail sender bean with host, port, credentials, etc.
Q2. What is JavaMailSender?
JavaMailSender is a subinterface of MailSender that adds support for MIME messages and more. It's typically implemented by JavaMailSenderImpl. It can send SimpleMailMessage or MimeMessage.
Q3. How do you send a simple email using Spring?
Configure JavaMailSender bean, then use it:
SimpleMailMessage message = new SimpleMailMessage();
message.setTo("to@example.com");
message.setSubject("Test");
message.setText("Hello");
mailSender.send(message);
Q4. What configuration is needed for email in Spring Boot?
Add spring-boot-starter-mail dependency. In application.properties, set spring.mail.host, spring.mail.port, spring.mail.username, spring.mail.password, etc. Spring Boot auto-configures JavaMailSender bean.
Q5. How do you handle email sending asynchronously?
You can use @Async with a thread pool to send emails asynchronously to avoid blocking the main thread. Enable @EnableAsync and annotate a service method with @Async.
