Q1. How do you send an email with attachments using Spring?
Use MimeMessageHelper with MimeMessage. Example:
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setTo("to@example.com");
helper.setSubject("Attachment");
helper.setText("See attached file.");
helper.addAttachment("file.txt", new File("/path/file.txt"));
mailSender.send(message);
Q2. What is MimeMessageHelper?
MimeMessageHelper is a helper class for populating a MimeMessage. It simplifies setting properties, adding attachments, and handling multipart content. The boolean true in constructor indicates multipart mode.
Q3. How do you send HTML emails with inline images?
Use MimeMessageHelper with HTML content and add inline resources. Example:
helper.setText("
...", true);
helper.addInline("imageId", new ClassPathResource("logo.png"));
Q4. How do you handle large attachments?
Be mindful of memory and file size limits. You can use InputStreamSource to stream attachments without loading into memory. Example using FileSystemResource.
Q5. How do you configure email with SSL/TLS?
In Spring Boot, set properties: spring.mail.properties.mail.smtp.starttls.enable=true, spring.mail.properties.mail.smtp.ssl.trust. For JavaMailSenderImpl, set appropriate properties on the JavaMailSender.
