
pom.xml
4.0.0 org.blog.test email-by-gmail-project 0.1.0 org.springframework.boot spring-boot-starter-parent 1.3.1.RELEASE org.springframework.boot spring-boot-starter-web org.projectlombok lombok 1.16.6 ch.qos.logback logback-core 1.1.3 ch.qos.logback logback-classic ch.qos.logback logback-access org.springframework spring-context-support 1.8
application.properties
============================================ # Email Info ============================================ mail.host=smtp.gmail.com mail.port=587 mail.username=test_account@gmail.com mail.password=test_password
mail.password value is the app password of google 2-step verification
Email.java
package org.blog.test.model; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor public class Email { private String sender; private String recipient; private String subject; private String content; }
EmailService
package org.blog.test.email.service; import javax.mail.MessagingException; import org.blog.test.model.Email; public interface EmailService { void send(Email email) throws MessagingException; }
EmailServiceImpl.java
package org.blog.test.email.service.impl; import java.util.Date; import javax.mail.Message.RecipientType; import javax.mail.MessagingException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.blog.test.email.service.EmailService; import org.blog.test.model.Email; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; @Service public class EmailServiceImpl implements EmailService { @Autowired private JavaMailSender javaMailSender; @Override public void send(Email email) throws MessagingException { MimeMessage message = javaMailSender.createMimeMessage(); message.setSubject(email.getSubject()); message.setSender(new InternetAddress(email.getSender())); message.setRecipient(RecipientType.TO, new InternetAddress(email.getRecipient())); message.setText(email.getContent()); message.setSentDate(new Date()); javaMailSender.send(message); } }
TestApplication.java
package org.blog.test; import java.util.Properties; import org.blog.test.email.service.EmailService; import org.blog.test.model.Email; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; @SpringBootApplication public class TestApplication implements CommandLineRunner { @Value(value = "${mail.host}") private String javaMailHost; @Value(value = "${mail.port}") private int javaMailPort; @Value(value = "${mail.username}") private String javaMailUserName; @Value(value = "${mail.password}") private String javaMailPassword; @Autowired private EmailService emailService; public static void main(String[] args) { SpringApplication.run(TestApplication.class); } @Bean public JavaMailSender javaMailSender() { Properties mailSmtpStarttlsEnable = new Properties(); mailSmtpStarttlsEnable.setProperty("mail.smtp.starttls.enable", "true"); JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setHost(javaMailHost); javaMailSender.setPort(javaMailPort); javaMailSender.setUsername(javaMailUserName); javaMailSender.setPassword(javaMailPassword); javaMailSender.setJavaMailProperties(mailSmtpStarttlsEnable); return javaMailSender; } @Override public void run(String... arg0) throws Exception { Email email = new Email("dont_reply", "test_recipient@naver.com", "test email", "this is the test"); emailService.send(email); } }
Execution Result

댓글 없음 :
댓글 쓰기