2018. 5. 9. 14:50
반응형
스프링 프레임워크에서 smtp를 이용해서 간편하게 메일을 보낼 수 있다.
많은 사람이 쓰는 gmail을 이용해서 보낸다고 가정한다.
메일 발송은 간단하게 JUnit 테스트를 통해 발송한다.
우선 pom.xml에 다음 디펜던시 추가
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-mail</artifactId> <version>${org.springframework-version}</version> </dependency>
root-context.xml에 다음을 추가한다.
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.gmail.com"/> <property name="port" value="587" /> <property name="username" value="name@gmail.com" /> <property name="password" value="password" /> <property name="javaMailProperties"> <props> <prop key="mail.transport.protocol">smtp</prop> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.starttls.enable">true</prop> <prop key="mail.debug">true</prop> </props> </property> </bean>
MailTest.java 파일을 다음과 같이 만든다.
저렇게 하고 실행하면 메일이 발송된다. (그전에 gmail에 로그인해서 무슨 설정을 해야 한다.)
2가지 경우를 만들었는데 큰 차이는 없다.
위의 예제에서는 MimeMessageHelper를 사용했다.
큰 차이는 발견하지 못했고, 굳이 차이가 있다면 답장받을 주소를 배열로 받지 못한다는 점이 보였다.
답장받을 주소를 변경하는 경우는 잘 없기 때문에 큰 의미가 없다.
import javax.mail.Message; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.mail.javamail.MimeMessagePreparator; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/spring/root-context.xml"}) public class MailTest { @Autowired JavaMailSender mailSender; @Test public void mailTest() { String mailTo = "a@a.com, b@b.com"; MimeMessagePreparator preparator = new MimeMessagePreparator() { @Override public void prepare(MimeMessage mimeMessage) throws Exception { MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); messageHelper.setFrom(new InternetAddress("name@gmail.com","nickname", "UTF-8")); // 보내는 사람 messageHelper.setTo(InternetAddress.parse(mailTo)); // 받는사람 messageHelper.setSubject("test mail"); // 제목 messageHelper.setText("", "<div>test mail</div>"); // 내용 messageHelper.setReplyTo(new InternetAddress("a@a.com","replyTo", "UTF-8")); // 답장받을 주소 } }; try { mailSender.send(preparator); } catch (Exception e) { e.printStackTrace(); } } @Test public void sendMail() { String mailTo = "a@a.com, b@b.com"; MimeMessagePreparator preparator = new MimeMessagePreparator() { @Override public void prepare(MimeMessage mimeMessage) throws Exception { mimeMessage.setFrom(new InternetAddress("name@gmail.com","nickname", "UTF-8")); mimeMessage.setSubject("test mail", "UTF-8"); mimeMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailTo)); mimeMessage.setContent("test mail", "text/html;charset=UTF-8"); mimeMessage.setReplyTo(InternetAddress.parse(mailTo)); } }; try { mailSender.send(preparator); } catch (Exception e) { e.printStackTrace(); } } }
반응형
'dev' 카테고리의 다른 글
[Spring] 스프링프레임워크 크로스도메인 허용 (0) | 2018.05.25 |
---|---|
[Spring/JSP] HttpServletRequest 모든 파라미터 출력하기 (2) | 2018.05.18 |
[JavaScript] 클립보드로 텍스트 복사하기 (0) | 2018.05.18 |
[HTML/jQuery] 간단한 Slick 예제 (세로 자동) (0) | 2018.05.10 |
[Javascript] Pubnub 채팅 서비스를 이용해 채팅창 구현하기 (0) | 2018.04.22 |
[Linux] 리눅스 서버의 파일 tomcat의 webapps에서 사용하기 (0) | 2018.04.20 |
[Spring] 스프링에서 채팅 구현하기 (0) | 2018.04.18 |
[Java] BigDecimal을 이용하여 반올림, 내림(버림), 올림 (1) | 2018.04.16 |