우선 smtp를 지원하는 메일서비스만 할 수 있습니다.
naver는 지원하긴 하지만, 조낸 써야지 smtp를 사용할 수 있습니다.
저는 일반사용자인데 으뜸사용자가 되야하는 듯 합니다.
그래서 그냥 지원해주는 gmail이랑 daum메일로 테스트를 해봤습니다. 잘 되는군요.
기존에 25포트가 디폴트로 메일을 사용했는데 보안 때문에 SSL을 사용하고, smtps라는 프로토콜로 465번포트로 하는군요.
이건 좀 더 공부를 해봐야할 듯 싶네요. 그냥 기존의 ssl을 사용하지 않는 메일은 host랑 id랑 password만 지정해주면 돼요.
우선 설정파일입니다.
applicationContext.xml
[code]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="mailtest" />
<!-- 일반용
<bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl"
p:host="STMP서버주소"
p:username="아이디"
p:password="비밀번호" />
-->
<!-- gmail, hanmail 용 -->
<bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl"
p:host="한메일: pop.hanmail.net, 지메일:smtp.gmail.com"
p:port="465"
p:protocol="smtps"
p:username="아이디"
p:password="비밀번호">
<property name="javaMailProperties">
<props>
<prop key="mail.smtps.auth">true</prop>
<prop key="mail.smtps.startls.enable">true</prop>
<prop key="mail.smtps.debug">true</prop>
</props>
</property>
</bean>
<bean id="templateMessage"
class="org.springframework.mail.SimpleMailMessage"
p:from="송신자 주소"
p:to="수신자 주소"
p:subject="안녕!" />
</beans>
[/code]
templateMessage는 임시로 메세지를 지정해주는 것으로 미리 지정할 껀 지정하는 겁니다.
물론, 나중에 java코드에서 수정이 가능합니다.
서비스부분입니다.
MailTestService.java
[code]
package mailtest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.stereotype.Service;
@Service
public class MailTestService
{
@Autowired
private MailSender mailSender;
@Autowired
private SimpleMailMessage simpleMailMessage;
public void sendEmail()
{
SimpleMailMessage msg = new SimpleMailMessage(this.simpleMailMessage);
msg.setText("난 종천이라고해!");
this.mailSender.send(msg);
}
}
[/code]
저기서 simpleMailMessage를 받아와서 text만 설정해줍니다. 저기서 msg.setTo하면 수신자도 설정할 수 있죠. 그리고 그냥 send메소드만 호출해주면 메일이 전송됩니다.
[code]
package mailtest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MailTest
{
public static void main(String[] args)
{
String configLocation = "applicationContext.xml";
ApplicationContext context =
new ClassPathXmlApplicationContext(configLocation);
MailTestService mailTestService =
(MailTestService) context.getBean("mailTestService");
mailTestService.sendEmail();
}
}
[/code]
더욱 심화된 기능은 reference를 참조하세요
http://static.springframework.org/spring/docs/2.5.x/reference/mail.html
naver는 지원하긴 하지만, 조낸 써야지 smtp를 사용할 수 있습니다.
저는 일반사용자인데 으뜸사용자가 되야하는 듯 합니다.
그래서 그냥 지원해주는 gmail이랑 daum메일로 테스트를 해봤습니다. 잘 되는군요.
기존에 25포트가 디폴트로 메일을 사용했는데 보안 때문에 SSL을 사용하고, smtps라는 프로토콜로 465번포트로 하는군요.
이건 좀 더 공부를 해봐야할 듯 싶네요. 그냥 기존의 ssl을 사용하지 않는 메일은 host랑 id랑 password만 지정해주면 돼요.
우선 설정파일입니다.
applicationContext.xml
[code]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="mailtest" />
<!-- 일반용
<bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl"
p:host="STMP서버주소"
p:username="아이디"
p:password="비밀번호" />
-->
<!-- gmail, hanmail 용 -->
<bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl"
p:host="한메일: pop.hanmail.net, 지메일:smtp.gmail.com"
p:port="465"
p:protocol="smtps"
p:username="아이디"
p:password="비밀번호">
<property name="javaMailProperties">
<props>
<prop key="mail.smtps.auth">true</prop>
<prop key="mail.smtps.startls.enable">true</prop>
<prop key="mail.smtps.debug">true</prop>
</props>
</property>
</bean>
<bean id="templateMessage"
class="org.springframework.mail.SimpleMailMessage"
p:from="송신자 주소"
p:to="수신자 주소"
p:subject="안녕!" />
</beans>
[/code]
templateMessage는 임시로 메세지를 지정해주는 것으로 미리 지정할 껀 지정하는 겁니다.
물론, 나중에 java코드에서 수정이 가능합니다.
서비스부분입니다.
MailTestService.java
[code]
package mailtest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.stereotype.Service;
@Service
public class MailTestService
{
@Autowired
private MailSender mailSender;
@Autowired
private SimpleMailMessage simpleMailMessage;
public void sendEmail()
{
SimpleMailMessage msg = new SimpleMailMessage(this.simpleMailMessage);
msg.setText("난 종천이라고해!");
this.mailSender.send(msg);
}
}
[/code]
저기서 simpleMailMessage를 받아와서 text만 설정해줍니다. 저기서 msg.setTo하면 수신자도 설정할 수 있죠. 그리고 그냥 send메소드만 호출해주면 메일이 전송됩니다.
[code]
package mailtest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MailTest
{
public static void main(String[] args)
{
String configLocation = "applicationContext.xml";
ApplicationContext context =
new ClassPathXmlApplicationContext(configLocation);
MailTestService mailTestService =
(MailTestService) context.getBean("mailTestService");
mailTestService.sendEmail();
}
}
[/code]
더욱 심화된 기능은 reference를 참조하세요
http://static.springframework.org/spring/docs/2.5.x/reference/mail.html