spring 2.5를 쓰는 분들이 없겠지만, 지금은 훨씬 더 나은 api를 제공하고 있다고 한다.
하지만, 요런 사람들(나같은)에게 유용할 것 같아 남겨 본다.
따박따박 친절한 설명대신 내가 짠 코드로 설명 드리겠다.
@Controller public class MemberAction extends ActionController { ... @Autowired private JavaMailSender jMailSender; public boolean mailSend(String newPassword, String name, String account, String emailAddr){ try { MimeMessage msg = jMailSender.createMimeMessage(); Address addr = new javax.mail.internet.InternetAddress(발송할메일주소@도메인", "보내는 이름"); msg.setFrom(addr); msg.setSubject("메일 제목", "utf-8"); String text = ""; text += "html로 메일 양식 작성"; msg.setContent(text, "text/html; charset=utf-8"); msg.setRecipient(RecipientType.TO, new InternetAddress(emailAddr));// 받는 분 jMailSender.send(msg); return true; } catch (Exception e) { e.printStackTrace(); return false; } } ... } |
spring-config.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="보내려는 gmail 아이디명" /> <property name="password" value="위 아이디의 비번" /> <property name="javaMailProperties"> <props> <prop key="mail.smtp.starttls.enable">true</prop> </props> </property> </bean> |
위 와 같이 하면 바로 발송 된다.
한 가지 팁을 드리면, 위와 같이 만들고 웹에서 해당 메소드를 호출하면 메일 발송 되는 동안 멍하니 가만 있는다.
이런 경우 메일 발송 성공 여부를 return하여(위 소스 처럼)jquery로 ajax 처리하면 쉽게 loading 화면을 만들 수 있다.
기억 보다 기록!