수신 이메일을 위해 포스트픽스 설정하기 (FREE ALL)

Tier: Free, Premium, Ultimate Offering: Self-Managed

이 문서는 Ubuntu에서 IMAP 인증이 있는 기본 포스트픽스 메일 서버 설정 단계를 안내합니다. 이 설정은 수신 이메일과 함께 사용될 수 있습니다.

지시 사항은 당신이 incoming@gitlab.example.com 이메일 주소를 사용하고 있다고 가정합니다. 즉, 호스트 gitlab.example.com에서 incoming 사용자명을 사용하는 것입니다. 예제 코드 스니펫을 실행할 때 실제 호스트로 변경하는 것을 잊지 마십시오.

서버 방화벽 구성

  1. 서버의 포트 25를 개방하여 다른 사람이 SMTP를 통해 서버로 이메일을 보낼 수 있도록 합니다.
  2. 메일 서버가 GitLab을 실행하는 서버와 다른 경우, 서버의 포트 143을 개방하여 GitLab이 IMAP을 통해 서버에서 이메일을 읽을 수 있도록합니다.

패키지 설치

  1. 이미 설치되어 있지 않은 경우 postfix 패키지를 설치하십시오.

    sudo apt-get install postfix
    

    환경에 대한 질문이 나오면 ‘인터넷 사이트’를 선택하십시오. 호스트 이름을 gitlab.example.com과 일치하도록 확인하라는 메시지가 나오면 확인하십시오.

  2. mailutils 패키지를 설치하십시오.

    sudo apt-get install mailutils
    

사용자 생성

  1. 수신 이메일용 사용자를 생성하십시오.

    sudo useradd -m -s /bin/bash incoming
    
  2. 이 사용자의 암호를 설정하십시오.

    sudo passwd incoming
    

    나중에 필요할 것이므로 잊지 말아 주십시오.

기본 설정 테스트

  1. 로컬 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
    
  2. 다음을 SMTP 프롬프트에 입력하여 새로운 incoming 사용자에게 이메일을 보내 SMTP를 테스트하십시오.

    ehlo localhost
    mail from: root@localhost
    rcpt to: incoming@localhost
    data
    Subject: Re: Some issue
       
    Sounds good!
    .
    quit
    
    note
    .는 줄에 있는 점(.)입니다.

    rcpt to: incoming@localhost를 입력한 후 오류가 발생하면, Postfix my_network 구성이 올바르지 않습니다. 오류는 ‘임시 조회 실패’라고 할 것입니다. 인터넷에서 이메일 수신을 위해 포스트픽스 구성을 참조하십시오.

  3. incoming 사용자가 이메일을 받았는지 확인하십시오.

    su - incoming
    mail
    

    다음과 같은 출력이 표시되어야 합니다.

    "/var/mail/incoming": 1 message 1 unread
    >U   1 root@localhost                           59/2842  Re: Some issue
    

    메일 앱을 나가십시오:

    q
    
  4. incoming 계정에서 로그아웃하고 root로 돌아가십시오:

    logout
    

포스트픽스를 Maildir 스타일 메일함 사용하도록 구성

나중에 IMAP 인증을 추가하기 위해 설치하는 쿠리어는 메일함을 mbox 대신 Maildir 형식으로 가져야 합니다.

  1. 포스트픽스를 Maildir 스타일 메일함 사용하도록 구성하십시오.

    sudo postconf -e "home_mailbox = Maildir/"
    
  2. 포스트픽스를 재시작하십시오.

    sudo /etc/init.d/postfix restart
    
  3. 새 설정을 테스트하십시오.

    1. _기본 설정 테스트_의 단계 1과 2를 따르십시오.
    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
      

    mailMaildir: Is a directory 오류를 반환하면, 당신의 mail 버전은 Maildir 스타일 메일함을 지원하지 않습니다. sudo apt-get install heirloom-mailx를 실행하여 heirloom-mailx를 설치하십시오. 그런 다음 위의 단계를 다시 시도하여 mail 명령을 heirloom-mailx로 대체하십시오.

  4. incoming 계정에서 로그아웃하고 root로 돌아가십시오:

    logout
    

쿠리어 IMAP 서버 설치

  1. courier-imap 패키지를 설치하십시오.

    sudo apt-get install courier-imap
    

    그리고 imapd를 시작하십시오:

    imapd start
    
  2. 설치 후 courier-authdaemon는 시작되지 않습니다. 이렇게 되면 IMAP 인증이 실패합니다:

    sudo service courier-authdaemon start
    

    또한 courier-authdaemon을 부팅할 때 시작하도록 구성할 수 있습니다:

    sudo systemctl enable courier-authdaemon
    

인터넷에서 이메일 수신을 위해 포스트픽스 구성

  1. 포스트픽스에게 로컬로 고려해야 할 도메인에 대해 알려주십시오.

    sudo postconf -e "mydestination = gitlab.example.com, localhost.localdomain, localhost"
    
  2. LAN의 일부인 IP에 대해 포스트픽스에게 알려주십시오:

    예를 들어, 192.168.1.0/24이 로컬 LAN이라고 가정합시다. 동일한 로컬 네트워크에 다른 머신이 없는 경우 이 단계를 건너뛰어도 됩니다.

    sudo postconf -e "mynetworks = 127.0.0.0/8, 192.168.1.0/24"
    
  3. 포스트픽스가 인터넷을 포함한 모든 인터페이스에서 이메일을 수신하도록 구성하십시오:

    sudo postconf -e "inet_interfaces = all"
    
  4. sub-addressing에 + 구분 기호를 사용하도록 포스트픽스를 구성하십시오:

    sudo postconf -e "recipient_delimiter = +"
    
  5. 포스트픽스를 재시작하십시오:

    sudo service postfix restart
    

최종 설정 테스트

  1. 새 설정에서 SMTP를 테스트하십시오:

    1. 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에서 들어오는 트래픽을 허용하도록 설정되어 있는지 확인하십시오.

    2. SMTP를 테스트하려면 다음을 SMTP 프롬프트에 입력하십시오:

      ehlo gitlab.example.com
      mail from: root@gitlab.example.com
      rcpt to: incoming@gitlab.example.com
      data
      Subject: Re: Some issue
            
      Sounds good!
      .
      quit
      
    3. 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
      
    4. incoming 계정에서 로그아웃하고 root로 돌아가십시오.

      logout
      
  2. 새 설정에서 IMAP를 테스트하십시오:

    1. 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.
      
    2. IMAP 테스트를 위해 incoming 사용자로 로그인하십시오.

      a login incoming PASSWORD
      

      PASSWORD를 앞서 incoming 사용자에게 설정한 암호로 교체하십시오.

      다음과 같은 출력이 표시되어야 합니다.

      a OK LOGIN Ok.
      
    3. IMAP 서버에서 로그아웃하십시오:

      a logout
      

–End of Document–

완료

모든 테스트가 성공적으로 완료되었으면, Postfix가 모두 설정되어 이메일을 수신할 준비가 되었습니다! 수신 이메일 가이드를 진행하여 GitLab를 구성하세요.


본 문서는 Ubuntu 문서 위키 기여자들에 의해 https://help.ubuntu.com/community/PostfixBasicSetupHowto에서 적용되었습니다.