앞서 설치한 Apache James 메일 서버에 접속해서 메일을 보내고 받는 방법을 정리한다.

메일을 보내고 받는 방법은 간단하게는 텔넷(telnet)을 이용할 수 있고, 전용 프로그램(Mail Transfer Agent - MTA)을 설치해서 이용할 수도 있다.

  1. Apache James 메일 서버 - 설치
  2. Apache James 메일 서버 - 설정
  3. Apache James 메일 서버 - 메일 클라이언트
  4. Apache James 메일 서버 - Text와 JPA(MariaDB등)
  5. Apache James 메일 서버 - 스팸 필터 (SpamAssassin)

 

사전 작업

메일 접속을 하기 전에, 앞서 James를 실행하면서 지정한 forest71.com 도메인을 등록한다.

실제 도메인을 사용한 경우에는 신경 쓰지 않아도 되지만, 개발자가 임의로 지정한 도메인인 경우에는 운영체제에 임의로 등록해서 사용해야 한다.

 

먼저 James를 설치한 PC가 윈도우일 경우에는 윈도우 시작 메뉴에서 관리자 권한으로 메모장을 실행하고,

C:\Windows\System32\drivers\etc 폴더에 있는 hosts 파일을 열어서 다음과 같이 수정한다.

127.0.0.1은 현재 사용 중인 PC를 의미하고,

임의로 지정한 forest71.com 도메인은 127.0.0.1를 가르키도록 지정했다.

다른 PC에 제임스를 실행한 경우에는 해당 PC의 IP를 지정하면 된다.

 

리눅스일 경우에는 etc/hosts를 관리자 권한으로 수정한다.

       sudo vi /etc/hosts

윈도우와 동일하게 127.0.0.1을 임의의 도메인 forest71.com로 지정한다.

네트워크 상태를 점검하는 명령어인 ping으로 forest71.com의 IP를 확인할 수 있다.

       ping forest71.com



1. 텔넷(Telnet)

텔넷은 간단하게 메일 서버가 제대로 작동하는지 확인하기 위해 많이 사용하는 방법으로, 각종 명령어를 직접 입력해야 하는 불편함이 있다.

하지만, 폐쇄망일 경우에 별도의 MUA를 설치할 수 없는 경우가 많아, 많은 사람들이 이용하는 방법이다.

리눅스일 경우에는 기본 설치되어 있고, 윈도우는 추가 설치를 해야 한다.

설치 방법은 [윈도우 텔넷]으로 검색하면 쉽게 찾을 수 있다.


텔넷을 설치한 후에, 운영체제에 관계없이 콘솔에서 다음 명령어 중 하나로 텔넷을 실행한다.

메일 발송(SMTP-25)을 먼저 테스트한다.

              telnet localhost 25
              telnet 1270.0.01 25
              telnet forest71.com 25

localhost는 현재 텔넷을 실행한 컴퓨터의 도메인을 의미하는 것으로 127.0.0.1과 같은 의미이다.

메일 서버가 텔넷을 실행하는 서버에 있는 경우 위와 같이 IP를 지정하고, 다른 서버에 있는 경우에는 해당 메일 서버의 도메인이나 IP를 지정한다.

메일을 발송할 것이라 SMTP 포트인 25번으로 접속한다.

 

당연하겠지만 메일을 가져올 때는 IMAP 포트인 143으로 접속한다.

모든 설정이 제대로 된 경우 다음과 같은 SMTP 메시지가 입력되고 커서가 깜박인다.

ehlo 명령어로 메일 전송을 시작한다.

      ehlo test

ehlo 다음에는 아무 값이나 입력하면 된다.

위와 같은 메시지가 출력되면,

메일을 보내는 사람 mail from:<gujc1@forest71.com>

메일을 받는 사람 rcpt to:<gujc1@forest71.com>

을 입력하고 메일 내용을 작성하기 위해 data를 입력하고 <enter>키를 누른다.

메일 제목을 입력하고 Subject: test mail

본문을 입력한 뒤에 this is a test mail

점(.)을 입력하고 <enter>키를 누르면 메일이 발송된다.

메일 제목을(Subject) 입력한 뒤에 <enter>키를 눌러 <CRLF>를 추가하고 메시지를 입력해야

메일 제목과 본문이 구분된다.

그렇지 않으면 제목이 없는 메일이 발송된다.

 

이번에는 받은 메일을 가져오는 IMAP을 연습해 보기 위해 콘솔에서 다음 명령어 중 하나로 텔넷을 실행한다.

              telnet localhost 143
              telnet 1270.0.01 143
              telnet forest71.com 143

IMAP 환영 메시지가 나오면,

메시지를 확인할 계정과 비밀번호를 지정해서 다음과 같이 login을 한다.

         a login  gujc1@forest71.com gujc1234

list 명령어로 로그인한 계정의 메일함 종류를 확인한다.

         a list "" "*"

별도의 메일함을 생성하지 않았기 때문에

기본 메일함인 받은 편지함(INBOX), 보낸 편지함(Sent), 삭제함(Trash)등이 출력된다.

받은 메일을 읽기 위해 받은 편지함(INBOX)을 선택한다.

           a select inbox

하나의 메일(1 EXISTS)이 있다고 표시된다.

이미 한번 읽었기 때문에 0 RECENT로 표시 되는데, 안 읽은 메시지가 있으면 안 읽은 메시지 개수가 표시된다.

 

fetch 명령어로 하나의 메일에 대한 내용을 확인 할 수 있다.

       a fetch 1 body[]

1 은 메일 서버에서 메일함 별로 부여하는 메일 고유 번호로 (uid라고 한다),

메일 개수를 번호로 생각하고 지정하면 된다.

여기서는 위 그림과 같이 하나의 메일, 첫번째 메일의 내용을 보여 준다.

 

이외에도 imap은 다양한 명령어가 있으니, [imap 명령어]로 관련 내용들을 찾아서 익혀두는 것이 좋다.

 

주의: IMAP에서는 특정 계정으로 로그인을 했지만, SMTP에서는 로그인을 하지 않았다.

SMTP에서 로그인을 하지 않고 메일을 발송할 수 있었던 이유는 James SMTP 설정 파일인 smtpserver.xml의 속성 중에서 <authorizedAddresses>에서 로컬 IP(127.0.0.1)를 지정했기 때문이다.

<authorizedAddresses>속성으로 지정된 IP에서 보내는 메일은 로그인을 하지 않고 메일을 발송한다.

SMTP 로그인은 계정 정보를 Base64로 변환해서 입력해야 하는데, 상세한 내용은 [SMTP 명령어]로 검색해서 익혀두는 것이 좋다.

로그인을 해서 메일을 발송하는 경우에는 다음과 같이 MUA(Mail User Agent) 사용하는 것이 편리하다.


2.  Mail User Agent

이메일을 읽고 보내는 이메일 클라이언트 프로그램들은(Mail User Agent) 인터넷으로 쉽게 구할 수 있다.

무료와 유료가 다양하게 제공되는데, 기업에서는 제법 오래전 부터 아웃룩(Outlook)이 독보적이다.

다만, 아웃룩은 메일 서버에 인증서 설정이 되어 있지 않으면 쉽게 계정을 등록할 수 없다.

 

개인적으로 PC에서는 오픈 소스인 썬더 버드를 선호한다.

썬더버드와 같은 MUA를 사용하면 메일을 쉽게 주고 받을 수 있는데, 현재 로컬에 개발로 설정하였기 때문에 썬더버드에서 메일을 발송하면 메일은 잘 발송되지만, 발송된 메일을 보낸 편지함(sent)에 저장하면서 오류가 발생한다.

그냥 무시하고 사용해도 된다 (?).

 

자세한 설치는 [썬더버드 설치]로 검색해서 익혀두고, 여기에서는 계정 등록시 주의해야 할 사항을 정리한다.

다음 그림과 같이 이메일 계정 등록 화면에서 하단에 있는 [수동으로 구성]을 선택한다.

[수동으로 구성]을 선택하면, 다음 그림과 같이 SMTP와 IMAP 서버 주소를 입력하는 창에 자동으로 도메인 앞에 점(.)이 붙어 생성된다.

SMTP와 IMAP 프로토콜 별로 서버 도메인을 등록하기 때문에 점이 붙는데,

smtp.forest71.com, imap.forest71.com 같이 하위 도메인을 프로토콜별 서버 주소로 입력해야 한다.

또는 합쳐서 mail.forest71.com과 같은 도메인을 등록해서 사용한다.

여기에서는 임의의 도메인을 만들어서 사용하는 것이기 때문에 하위 도메인 없이 구현하였다.

따라서 점(.)을 제거하고 forest.com만 서버 주소로 입력한다.

단, 썬더버드를 설치한 PC의 hosts 파일에 forest.com을 등록해야 한다.

아니면 James를 설치한 서버 주소 IP를 직접 입력해서 사용해도 된다.

 

모바일에서는 아웃룩을 사용하지 않는 것이 좋을 것 같다.

자주 (약 2주 간격) 업데이트하기도 하는데, 모바일의 특성상 메일 서버에 인증서가 설치되어 있어야 이메일 계정을 등록할 수 있다.

그나마 많이 사용하는 것이 스파크 인것 같고, 개인적으로는 gmail 앱을(gmail 메일 서버가 아니다.) 선호한다.

Android 폰에는 기본적으로 설치되어 있다.

모바일 MUA에 계정을 등록하려면 James에 인증서를 등록해서 실행해야 하기 때문에

모바일 MUA에 계정을 등록하는 방법은 정리하지 않는다.

+ Recent posts