受信メール用にPostfixを設定する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
このドキュメントでは、UbuntuでIMAP認証を使用した基本的なPostfixメールサーバーをセットアップし、受信メールで使用する手順について説明します。
この手順では、incoming@gitlab.example.comというメールアドレス(つまり、ホストgitlab.example.com上のユーザー名incoming)を使用していることを前提としています。コード例を実行するときは、実際のホストに変更することを忘れないでください。
サーバーファイアウォールを構成する
- ユーザーがSMTP経由でメールをサーバーに送信できるように、サーバーのポート25を開きます。
- メールサーバーがGitLabを実行しているサーバーと異なる場合は、GitLabがIMAP経由でサーバーからメールを読み取りできるように、サーバーのポート143を開きます。
パッケージをインストールする
postfixパッケージがまだインストールされていない場合は、インストールします:sudo apt-get install postfix環境について質問されたら、[インターネットサイト]を選択します。ホスト名の確認を求められたら、
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 startSMTPをテストするために、次のスニペットをSMTPプロンプトに入力して、新しい
incomingユーザーにメールを送信します:ehlo localhost mail from: root@localhost rcpt to: incoming@localhost data Subject: Re: Some issue Sounds good! . quit.は、それ自体の行にあるリテラルピリオドです。rcpt to: incoming@localhostを入力した後にエラーが表示される場合は、Postfixmy_network設定が正しくありません。エラーには「一時的な検索失敗」と表示されます。インターネットからメールを受信するようにPostfixを構成するを参照してください。incomingユーザーがメールを受信したかどうかを確認します:su - incoming mail次のような出力が表示されます:
"/var/mail/incoming": 1 message 1 unread >U 1 root@localhost 59/2842 Re: Some issueメールアプリを終了します:
qincomingアカウントからサインアウトし、rootに戻ります:logout
Maildirスタイルのメールボックスを使用するようにPostfixを構成する
後でIMAP認証を追加するためにインストールするCourierでは、メールボックスがmboxではなく、Maildir形式である必要があります。
Maildirスタイルのメールボックスを使用するようにPostfixを構成します:
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スタイルのメールボックスをサポートしていません。heirloom-mailxをインストールするには、sudo apt-get install heirloom-mailxを実行します。次に、前の手順をもう一度試し、heirloom-mailxをmailコマンドに置き換えます。incomingアカウントからサインアウトし、rootに戻ります:logout
Courier IMAPサーバーをインストールする
courier-imapパッケージをインストールします:sudo apt-get install courier-imapそして、
imapdを起動します:imapd startcourier-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をテストするために、次のスニペットを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メールアプリを終了します:
qincomingアカウントからサインアウトし、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.incomingユーザーとしてサインインしてIMAPをテストするには、次のスニペットをIMAPプロンプトに入力します:a login incoming PASSWORDincomingユーザーに以前に設定したパスワードでPASSWORDを置き換えます。次のような出力が表示されます:
a OK LOGIN Ok.IMAPサーバーから切断します:
a logout
完了
すべてのテストが成功した場合、Postfixはすべて設定され、メールを受信する準備ができています。GitLabを構成するには、受信メールガイドに進みます。
このドキュメントは、UbuntuドキュメントWikiのコントリビューターによるhttps://help.ubuntu.com/community/PostfixBasicSetupHowtoを基に作成されました。