Search Results for '메일발송테스트'

1 POSTS

  1. 2007.10.31 JAMES Mail Server(Phoenix4.2)를 이용한 메일 테스트 2

아파치 진영에서 자바메일관련된 것을 찾다가 발견했다. JAMES...

메일테스트 하나 하고 싶어도 메일서버 세팅이 귀찮고 여건이 안되 하기 힘들었는데...

1. 일단 다운받는다. http://james.apache.org 요기가면 있다. 최신 버전(2.3)을 받았다.
2. 압축을 푼다. 근데 폴더 경로에 공백같은거 있으면 곤란하다...
3. run.bat를 더블 클릭한다.
    쫌 있다가 아래와 같은 화면 나오면 끝이다.

사용자 삽입 이미지

4. 메일이 잘 가는지 테스트 해보자.
 4-1. 일단 계정생성한다.
  telnet localhost 4555  하면  id/pw 물어본다. Default는 root/root다.
Welcom root. HELP for a list of commands 라고 나온다. 그리고 깜빡깜빡..
adduser test 1111
User test added
adduser test2 1111
User test2 added 라고 나오면 끝.
 4-2. 메일 발송 테스트한다.
\telnet localhost 25
하면 다음과 같은 화면이 나온다.
220 HostName SMTP Server (JAMES SMTP Server 2.3.1) ready Wed, 31 Oct 2007 20:43:59 +0900 (KST)
helo localhost
mail from: <test@localhost>
rcpt to: <test2@localhost>
data
subject: This is Test Mail with JAMES...
어쩌구 저쩌구 메일내용 쓰고

.

하면...
250 2.6.0 Message received 나오면 성공이다.
사용자 삽입 이미지

메일은 설치폴더 밑에 저장된다.
사용자 삽입 이미지

파일관리가 귀찮다면 MySQL을 깔아서 메일 주고 받는 부분을 테스트 할수도 있다.
\james\apps\james\SAR-INF\config.xml파일에서 file:// 되어 있는 부분을 주석처리하고 db: 로 되어 있는 부분 주석을 풀어준다.
변경될 부분은...
inboxRepository, repositoryPath,outgoing, spoolrepository, spam의 repositoryPath, repository name 등이다.

dburl부분에 자신의 환경에 맞게 변경한다.
사용자 삽입 이미지

jdbc-driver도 버전에 맞는 것을 넣도록 하자.

다시 JAMES 설치폴더/bin에 가서 run.bat하자...
테이블은 알아서 생긴다. database만 미리 만들어 주고 지정하면...

file에서 생성된 user가 그대로 따라오지 않기 때문에 adduser를 이용해서 user는 다시 생성해야 한다. 생성하면 users테이블에 추가된다.
메시지를 보내고 나면 inbox테이블에 받은 메일이 쌓이게 된다.

자바를 이용해서 메일을 보내야 하는데... 자바메일에 관련된 jar를 lib(activation.jar, mail.jar 이정도?)에 넣었다면... 간단테스트를 할수 있다.

대출 클래스 하나 만들고 아래정도의 메소드 만들어서 테스트 할수 있다.

public class MailTest {

public void mailSend() {
        String smtp_addr ="127.0.0.1";
        String sender_addr ="webmaster@localhost";
        String sender_nm  = "관리자";
        String receiver = "test@localhost" ;
        String subject = "TITLE of Mail.......";
        String content = "Hello This is Test Mail" ;
        try
        {
            // 기본적인 메소드를 선언한다.
            Properties props = new Properties();
           
            props.put("mail.smtp.host",smtp_addr);
            Session session = Session.getDefaultInstance(props,null);
            MimeMessage message = new MimeMessage(session);

            message.setFrom(new InternetAddress(sender_addr,sender_nm, "euc-kr"));

            InternetAddress[] tos = InternetAddress.parse(receiver);
            message.setRecipients(Message.RecipientType.TO, tos);
            message.setSubject(subject, "euc-kr");

            Multipart multipart = new MimeMultipart();
            //메일 내용을 Setting한다.
            MimeBodyPart messageBodyPart = new MimeBodyPart();

            messageBodyPart.setText(content, "euc-kr");
            //messageBodyPart.setContent(content, "text/html;charset=euc-kr");

            multipart.addBodyPart(messageBodyPart);
            message.setSentDate(new java.util.Date());
            message.setContent(multipart);

            Transport transport = session.getTransport("smtp");

            Transport.send(message);
            transport.close();

        }
        catch(Exception e)  {
               e.printStackTrace();
        }
 }