InfoGrab Docs

수신 이메일을 위한 Postfix 설정

요약

이 문서는 수신 이메일과 함께 사용하기 위해 Ubuntu에서 IMAP 인증이 포함된 기본 Postfix 메일 서버를 설정하는 단계를 안내합니다. 이 지침은 이메일 주소 incoming@gitlab.example.com, 즉 호스트 gitlab.example.com의 사용자 이름 incoming을 사용한다고 가정합니다.

이 문서는 수신 이메일과 함께 사용하기 위해 Ubuntu에서 IMAP 인증이 포함된 기본 Postfix 메일 서버를 설정하는 단계를 안내합니다.

이 지침은 이메일 주소 incoming@gitlab.example.com, 즉 호스트 gitlab.example.com의 사용자 이름 incoming을 사용한다고 가정합니다. 예시 코드 스니펫을 실행할 때 실제 호스트로 변경하는 것을 잊지 마세요.

서버 방화벽 구성#

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

패키지 설치#

  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 구성이 올바르지 않은 것입니다. 오류에는 '임시 조회 실패'가 표시됩니다. 인터넷에서 이메일을 수신하도록 Postfix 구성을 참조하세요.

  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 스타일 메일박스를 사용하도록 Postfix 구성#

나중에 IMAP 인증을 추가하기 위해 설치하는 Courier는 mbox가 아닌 Maildir 형식의 메일박스를 필요로 합니다.

  1. Maildir 스타일 메일박스를 사용하도록 Postfix를 구성하세요:

    sudo postconf -e "home_mailbox = Maildir/"
    
  2. Postfix를 재시작하세요:

    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
      

    mail에서 Maildir: Is a directory 오류가 반환되면 mail 버전이 Maildir 스타일 메일박스를 지원하지 않는 것입니다. sudo apt-get install heirloom-mailx를 실행하여 heirloom-mailx를 설치하세요. 그런 다음 mail 명령 대신 heirloom-mailx를 사용하여 이전 단계를 다시 시도하세요.

  4. incoming 계정에서 로그아웃하고 root로 돌아가세요:

    logout
    

Courier IMAP 서버 설치#

  1. courier-imap 패키지를 설치하세요:

    sudo apt-get install courier-imap
    

    Ubuntu 24.04에는 courier-imap 패키지가 없습니다. 자세한 내용은 Ubuntu 버그 2071662를 참조하세요.

    courier-imap을 설치한 후 imapd를 시작하세요:

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

    sudo service courier-authdaemon start
    

    부팅 시 courier-authdaemon이 시작되도록 구성할 수도 있습니다:

    sudo systemctl enable courier-authdaemon
    

인터넷에서 이메일을 수신하도록 Postfix 구성#

  1. Postfix에 로컬로 간주해야 하는 도메인을 알려주세요:

    sudo postconf -e "mydestination = gitlab.example.com, localhost.localdomain, localhost"
    
  2. Postfix에 LAN의 일부로 간주해야 하는 IP를 알려주세요:

    192.168.1.0/24가 로컬 LAN이라고 가정합니다. 같은 로컬 네트워크에 다른 머신이 없는 경우 이 단계를 안전하게 건너뛸 수 있습니다.

    sudo postconf -e "mynetworks = 127.0.0.0/8, 192.168.1.0/24"
    
  3. 인터넷을 포함한 모든 인터페이스에서 메일을 수신하도록 Postfix를 구성하세요:

    sudo postconf -e "inet_interfaces = all"
    
  4. 서브 주소에 + 구분자를 사용하도록 Postfix를 구성하세요:

    sudo postconf -e "recipient_delimiter = +"
    
  5. Postfix를 재시작하세요:

    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 프롬프트에 다음을 입력하여 incoming 사용자에게 이메일을 보내 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
      

      [!note] .은 자체 줄에 있는 문자 그대로의 마침표입니다.

    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 프롬프트에 다음을 입력하여 IMAP을 테스트하기 위해 incoming 사용자로 로그인하세요:

      a login incoming PASSWORD
      

      PASSWORD를 앞서 incoming 사용자에게 설정한 비밀번호로 바꾸세요.

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

      a OK LOGIN Ok.
      
    3. IMAP 서버에서 연결을 끊으세요:

      a logout
      

완료#

모든 테스트가 성공하면 Postfix가 모두 설정되어 이메일을 수신할 준비가 된 것입니다! GitLab을 구성하려면 수신 이메일 가이드를 계속 따르세요.


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

수신 이메일을 위한 Postfix 설정

Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기
요약

이 문서는 수신 이메일과 함께 사용하기 위해 Ubuntu에서 IMAP 인증이 포함된 기본 Postfix 메일 서버를 설정하는 단계를 안내합니다. 이 지침은 이메일 주소 incoming@gitlab.example.com, 즉 호스트 gitlab.example.com의 사용자 이름 incoming을 사용한다고 가정합니다.

이 문서는 수신 이메일과 함께 사용하기 위해 Ubuntu에서 IMAP 인증이 포함된 기본 Postfix 메일 서버를 설정하는 단계를 안내합니다.

이 지침은 이메일 주소 incoming@gitlab.example.com, 즉 호스트 gitlab.example.com의 사용자 이름 incoming을 사용한다고 가정합니다. 예시 코드 스니펫을 실행할 때 실제 호스트로 변경하는 것을 잊지 마세요.

서버 방화벽 구성#

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

패키지 설치#

  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 구성이 올바르지 않은 것입니다. 오류에는 '임시 조회 실패'가 표시됩니다. 인터넷에서 이메일을 수신하도록 Postfix 구성을 참조하세요.

  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 스타일 메일박스를 사용하도록 Postfix 구성#

나중에 IMAP 인증을 추가하기 위해 설치하는 Courier는 mbox가 아닌 Maildir 형식의 메일박스를 필요로 합니다.

  1. Maildir 스타일 메일박스를 사용하도록 Postfix를 구성하세요:

    sudo postconf -e "home_mailbox = Maildir/"
    
  2. Postfix를 재시작하세요:

    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
      

    mail에서 Maildir: Is a directory 오류가 반환되면 mail 버전이 Maildir 스타일 메일박스를 지원하지 않는 것입니다. sudo apt-get install heirloom-mailx를 실행하여 heirloom-mailx를 설치하세요. 그런 다음 mail 명령 대신 heirloom-mailx를 사용하여 이전 단계를 다시 시도하세요.

  4. incoming 계정에서 로그아웃하고 root로 돌아가세요:

    logout
    

Courier IMAP 서버 설치#

  1. courier-imap 패키지를 설치하세요:

    sudo apt-get install courier-imap
    

    Ubuntu 24.04에는 courier-imap 패키지가 없습니다. 자세한 내용은 Ubuntu 버그 2071662를 참조하세요.

    courier-imap을 설치한 후 imapd를 시작하세요:

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

    sudo service courier-authdaemon start
    

    부팅 시 courier-authdaemon이 시작되도록 구성할 수도 있습니다:

    sudo systemctl enable courier-authdaemon
    

인터넷에서 이메일을 수신하도록 Postfix 구성#

  1. Postfix에 로컬로 간주해야 하는 도메인을 알려주세요:

    sudo postconf -e "mydestination = gitlab.example.com, localhost.localdomain, localhost"
    
  2. Postfix에 LAN의 일부로 간주해야 하는 IP를 알려주세요:

    192.168.1.0/24가 로컬 LAN이라고 가정합니다. 같은 로컬 네트워크에 다른 머신이 없는 경우 이 단계를 안전하게 건너뛸 수 있습니다.

    sudo postconf -e "mynetworks = 127.0.0.0/8, 192.168.1.0/24"
    
  3. 인터넷을 포함한 모든 인터페이스에서 메일을 수신하도록 Postfix를 구성하세요:

    sudo postconf -e "inet_interfaces = all"
    
  4. 서브 주소에 + 구분자를 사용하도록 Postfix를 구성하세요:

    sudo postconf -e "recipient_delimiter = +"
    
  5. Postfix를 재시작하세요:

    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 프롬프트에 다음을 입력하여 incoming 사용자에게 이메일을 보내 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
      

      [!note] .은 자체 줄에 있는 문자 그대로의 마침표입니다.

    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 프롬프트에 다음을 입력하여 IMAP을 테스트하기 위해 incoming 사용자로 로그인하세요:

      a login incoming PASSWORD
      

      PASSWORD를 앞서 incoming 사용자에게 설정한 비밀번호로 바꾸세요.

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

      a OK LOGIN Ok.
      
    3. IMAP 서버에서 연결을 끊으세요:

      a logout
      

완료#

모든 테스트가 성공하면 Postfix가 모두 설정되어 이메일을 수신할 준비가 된 것입니다! GitLab을 구성하려면 수신 이메일 가이드를 계속 따르세요.


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