- 서버 방화벽 구성
- 패키지 설치
- 사용자 생성
- 기본 설정 테스트
- Postfix를 Maildir 스타일 메일 박스로 구성하기
- Courier IMAP 서버 설치하기
- Postfix를 인터넷에서 이메일을 수신하도록 구성하기
- 최종 설정 테스트하기
- 완료
Postfix 수신 이메일 설정
이 문서는 Ubuntu에서 IMAP 인증을 사용하는 기본 Postfix 메일 서버를 설정하는 단계를 안내합니다. 이는 수신 이메일에서 사용됩니다.
지침은 incoming@gitlab.example.com
이메일 주소를 사용하고, 즉, 호스트 gitlab.example.com
에서 사용자 이름 incoming
을 사용한다고 가정합니다. 예제 코드 스니펫을 실행할 때 실제 호스트로 변경하는 것을 잊지 마세요.
서버 방화벽 구성
- SMTP를 통해 사람들이 서버로 이메일을 보낼 수 있도록 서버의 포트 25를 엽니다.
- 메일 서버가 GitLab을 실행하는 서버와 다른 경우, IMAP을 통해 GitLab이 서버에서 이메일을 읽을 수 있도록 서버의 포트 143을 엽니다.
패키지 설치
-
설치되지 않았다면
postfix
패키지를 설치합니다:sudo apt-get install postfix
환경에 대해 물어보면 ‘Internet Site’를 선택합니다. 호스트 이름을 확인하라는 질문에는
gitlab.example.com
과 일치하는지 확인합니다. -
mailutils
패키지를 설치합니다.sudo apt-get install mailutils
사용자 생성
-
수신 이메일을 위해 사용자 하나를 생성합니다:
sudo useradd -m -s /bin/bash incoming
-
이 사용자에 대한 비밀번호를 설정합니다:
sudo passwd incoming
잊지 않도록 주의하세요. 나중에 필요할 것입니다.
기본 설정 테스트
-
로컬 SMTP 서버에 연결합니다:
telnet localhost 25
다음과 같은 프롬프트가 나타납니다:
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 gitlab.example.com ESMTP Postfix (Ubuntu)
Connection refused
오류가 발생하는 경우postfix
가 실행되고 있는지 확인합니다:sudo postfix status
실행되지 않고 있다면 시작합니다:
sudo postfix start
-
새
incoming
사용자에게 SMTP 테스트 이메일을 보냅니다. SMTP 프롬프트에 다음 내용을 입력합니다:ehlo localhost mail from: root@localhost rcpt to: incoming@localhost data Subject: Re: Some issue Sounds good! . quit
.
는 해당 줄에 있는 리터럴 마침표입니다.rcpt to: incoming@localhost
를 입력한 후 오류가 발생하면 Postfix의my_network
구성에 문제가 있는 것입니다. 오류 메시지에는 ‘Temporary lookup failure’라고 표시됩니다. 인터넷에서 이메일을 수신하도록 Postfix 구성하기를 참조하세요. -
incoming
사용자가 이메일을 받았는지 확인합니다:su - incoming mail
다음과 같은 출력이 보여야 합니다:
"/var/mail/incoming": 1 message 1 unread >U 1 root@localhost 59/2842 Re: Some issue
메일 앱을 종료합니다:
q
-
incoming
계정에서 로그아웃하고root
로 돌아갑니다:logout
Postfix를 Maildir 스타일 메일 박스로 구성하기
나중에 IMAP 인증을 추가하기 위해 설치할 Courier는 메일 박스가 mbox가 아닌 Maildir 형식이어야 합니다.
-
Postfix를 Maildir 스타일 메일 박스로 구성합니다:
sudo postconf -e "home_mailbox = Maildir/"
-
Postfix를 재시작합니다:
sudo /etc/init.d/postfix restart
-
새로운 설정을 테스트합니다:
-
_기본 설정 테스트_의 1단계와 2단계를 따릅니다.
-
incoming
사용자가 이메일을 받았는지 확인합니다:su - incoming MAIL=/home/incoming/Maildir mail
아래와 같은 출력이 표시됩니다:
"/home/incoming/Maildir": 1 message 1 unread >U 1 root@localhost 59/2842 Re: Some issue
메일 앱을 종료합니다:
q
만약
mail
이Maildir: Is a directory
라는 오류를 반환하면, 사용 중인mail
버전이 Maildir 스타일 메일 박스를 지원하지 않는 것입니다.sudo apt-get install heirloom-mailx
를 실행하여heirloom-mailx
를 설치합니다. 그런 다음, 위의 단계를 반복하되mail
명령 대신heirloom-mailx
를 사용합니다. -
-
incoming
계정에서 로그아웃하고root
로 돌아갑니다:logout
Courier IMAP 서버 설치하기
-
courier-imap
패키지를 설치합니다:sudo apt-get install courier-imap
그리고
imapd
를 시작합니다:imapd start
-
설치 후
courier-authdaemon
이 시작되지 않습니다. 이를 시작하지 않으면 IMAP 인증이 실패합니다:sudo service courier-authdaemon start
또한
courier-authdaemon
이 부팅 시 시작되도록 구성할 수 있습니다:sudo systemctl enable courier-authdaemon
Postfix를 인터넷에서 이메일을 수신하도록 구성하기
-
Postfix가 로컬로 간주해야 하는 도메인을 알립니다:
sudo postconf -e "mydestination = gitlab.example.com, localhost.localdomain, localhost"
-
Postfix가 LAN의 일부로 간주해야 하는 IP를 알립니다:
192.168.1.0/24
가 귀하의 로컬 LAN이라고 가정하겠습니다. 같은 로컬 네트워크에 다른 머신이 없다면 이 단계를 안전하게 건너뛸 수 있습니다.sudo postconf -e "mynetworks = 127.0.0.0/8, 192.168.1.0/24"
-
Postfix가 인터넷을 포함한 모든 인터페이스에서 이메일을 수신하도록 구성합니다:
sudo postconf -e "inet_interfaces = all"
-
Postfix가 서브 주소지정에
+
구분 기호를 사용하도록 구성합니다:sudo postconf -e "recipient_delimiter = +"
-
Postfix를 재시작합니다:
sudo service postfix restart
최종 설정 테스트하기
-
새로운 설정에서 SMTP를 테스트합니다:
-
SMTP 서버에 연결합니다:
telnet gitlab.example.com 25
아래와 같은 프롬프트가 표시됩니다:
Trying 123.123.123.123... Connected to gitlab.example.com. Escape character is '^]'. 220 gitlab.example.com ESMTP Postfix (Ubuntu)
만약
Connection refused
오류가 발생하면, 방화벽이 포트 25에서의 수신 트래픽을 허용하도록 설정되어 있는지 확인합니다. -
SMTP 프롬프트에 다음을 입력하여
incoming
사용자에게 이메일을 보냅니다:ehlo gitlab.example.com mail from: root@gitlab.example.com rcpt to: incoming@gitlab.example.com data Subject: Re: Some issue Sounds good! . quit
주의:
.
는 자신의 줄에 있는 문자 그대로의 마침표입니다. -
incoming
사용자가 이메일을 받았는지 확인합니다:su - incoming MAIL=/home/incoming/Maildir mail
아래와 같은 출력이 표시됩니다:
"/home/incoming/Maildir": 1 message 1 unread >U 1 root@gitlab.example.com 59/2842 Re: Some issue
메일 앱을 종료합니다:
q
-
incoming
계정에서 로그아웃하고root
로 돌아갑니다:logout
-
-
새로운 설정에서 IMAP을 테스트합니다:
-
IMAP 서버에 연결합니다:
telnet gitlab.example.com 143
아래와 같은 프롬프트가 표시됩니다:
Trying 123.123.123.123... Connected to mail.gitlab.example.com. Escape character is '^]'. - OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION] Courier-IMAP ready. Copyright 1998-2011 Double Precision, Inc. See COPYING for distribution information.
-
IMAP 프롬프트에 다음을 입력하여
incoming
사용자로 로그인합니다:a login incoming PASSWORD
PASSWORD를 이전에 설정한
incoming
사용자의 비밀번호로 바꿉니다.아래와 같은 출력이 표시됩니다:
a OK LOGIN Ok.
-
IMAP 서버에서 로그아웃합니다:
a logout
-
완료
모든 테스트가 성공적으로 완료되었다면, Postfix가 설정되었으며 이메일을 받을 준비가 완료되었습니다!
GitLab을 구성하기 위해 수신 이메일 가이드를 계속 진행하세요.
이 문서는 Ubuntu 문서 위키의 기여자들에 의해 https://help.ubuntu.com/community/PostfixBasicSetupHowto에서 수정되었습니다.