Programing/Springboot

Spring boot 2.x SMTP send mail tutorial, 메일 보내기 java

리커니 2019. 12. 2.
반응형

 

Spring boot 2.x SMTP send mail tutorial, 메일 보내기 java

 

 

windows server 에 SMTP 세팅하는 방법은 아래의 Link를 참고하세요.

 

Link : [Window server]How to set up SMTP mail Server 메일서버 세팅 방법

 

 

다른 로직은 제외하고 메일보내는 코드만 정리하였습니다. 참고바랍니다.

 

 

메일을 보내기 위해서는 spring-boot-starter-mail 의 의존성 주입이 필요합니다.

 

[Gradle]

 

// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail
compile group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version: '2.2.1.RELEASE'

 

[Maven]

 

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    <version>2.2.1.RELEASE</version>
</dependency>

 

[SendMailApplication]

 

@SpringBootApplication
public class SendMailApplication {
    public static void main(String[] args) {
    	ConfigurableApplicationContext ctx = SpringApplication.run(RedisTestApplication.class);
	MailController mailController = ctx.getBean(MailController.class);
   	mailController.send();
    }
}

 

[MailController]

 

@Controller
public class MailController {

    private static final Logger LOGGER = LoggerFactory.getLogger(MailController.class);
    
    @Autowired
    private MailService ms;
    
    public void sendMail() {
    	try{
        	ms.sendMail();
        }catch(Exception e){
        	LOGGER.error("메일 전송에 실패하였습니다.", e);	
        }
    }
}

 

[MailService]

 

public interface MailService {
	void sendMail(String msg) throws Exception;
}

 

[MailServiceImpl]

 

@Service
public class MailServiceImpl implements MailService{

	private static final Logger LOGGER = LoggerFactory.getLogger(MailServiceImpl.class);
	
	@Autowired
	private JavaMailSender javaMailSender;
	
	@Override
	public void sendMail() throws Exception {
		try {
			new Thread(new Runnable() {
				@Override
				public void run() {
					final MimeMessagePreparator preparator = new MimeMessagePreparator() { 
						@Override 
						public void prepare(MimeMessage mimeMessage) throws Exception { 
							final MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); 
							helper.setFrom("from@test.com"); 
							helper.setTo("to@test.com"); 
							helper.setSubject("제목");
							helper.setText("내용", true); 
						} 
					};
					javaMailSender.send(preparator);
				}
			}).start();
		}catch(Exception e) {
			throw e;
		}
	}
}

 

setText 시 내용에는 HTML 태그를 포함한 문자를 넣어주셔도 됩니다.

매개변수 true가 HTML을 포함하겠다는 옵션입니다.

 

 

 

반응형

댓글

💲 추천 글