正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

受信メール用にPostfixを設定する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

このドキュメントでは、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をテストするために、次のスニペットをSMTPプロンプトに入力して、新しいincomingユーザーにメールを送信します:

    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設定が正しくありません。エラーには「一時的な検索失敗」と表示されます。インターネットからメールを受信するように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スタイルのメールボックスをサポートしていません。heirloom-mailxをインストールするには、sudo apt-get install heirloom-mailxを実行します。次に、前の手順をもう一度試し、heirloom-mailxmailコマンドに置き換えます。

  4. incomingアカウントからサインアウトし、rootに戻ります:

    logout

Courier 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

インターネットからメールを受信するように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をテストするために、次のスニペットを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

      .は、それ自体の行にあるリテラルピリオドです。

    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. incomingユーザーとしてサインインしてIMAPをテストするには、次のスニペットをIMAPプロンプトに入力します:

      a login incoming PASSWORD

      incomingユーザーに以前に設定したパスワードでPASSWORDを置き換えます。

      次のような出力が表示されます:

      a OK LOGIN Ok.
    3. IMAPサーバーから切断します:

      a logout

完了

すべてのテストが成功した場合、Postfixはすべて設定され、メールを受信する準備ができています。GitLabを構成するには、受信メールガイドに進みます。


このドキュメントは、UbuntuドキュメントWikiのコントリビューターによるhttps://help.ubuntu.com/community/PostfixBasicSetupHowtoを基に作成されました。