- サーバーのファイアウォールの設定
- パッケージのインストール
- ユーザーを作成します。
- すぐに使えるセットアップのテスト
- PostfixでMaildir形式のメールボックスを使う設定
- Courier IMAPサーバーのインストール
- インターネットからメールを受信するためのPostfixの設定
- 最終セットアップのテスト
- To-Doone
受信メールのPostfixの設定
この文書では、UbuntuでIMAP認証付きの基本的なPostfixメールサーバーを設定し、受信メールに使用する手順を説明します。
この手順では、メールアドレスincoming@gitlab.example.com
、つまりホストgitlab.example.com
のユーザー名incoming
を使用していることを前提としています。スニペット例を実行する際には、実際のホストに変更することを忘れないでください。
サーバーのファイアウォールの設定
- サーバーのポート25を開放し、SMTPでメールを送信できるようにします。
- メールサーバーがGitLabを動かしているサーバーと異なる場合は、GitLabがサーバーからIMAP経由でメールを読めるように、サーバーで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
-
SMTPプロンプトに次のように入力して、新しい
incoming
ユーザーに電子メールを送信し、SMTPをテストします:ehlo localhost mail from: root@localhost rcpt to: incoming@localhost data Subject: Re: Some issue Sounds good! . quit
.
は、その行のリテラル・ピリオドです。rcpt to: incoming@localhost
を入力した後にエラーが表示される場合は、Postfixmy_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 形式である必要があります。
-
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 形式のメールボックスをサポートしていません。sudo apt-get install heirloom-mailx
を実行してheirloom-mailx
をインストールしてください。その後、heirloom-mailx
をmail
コマンドに置き換えて、上記の手順をもう一度試してください。 -
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"
-
LANの一部とみなすIPをPostfixに知らせます:
ここでは、
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"
-
サブアドレスに
+
を使うように設定します: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
ユーザーに電子メールを送信して 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
.
は、その行のリテラル・ピリオドです。 -
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 プロンプトに次のように入力して、IMAP をテストするために
incoming
ユーザーとしてサインインします:a login incoming PASSWORD
PASSWORD は、先ほど
incoming
ユーザーに設定したパスワードに置き換えてください。このような出力が表示されるはずです:
a OK LOGIN Ok.
-
IMAPサーバーから切断します:
a logout
-
To-Doone
すべてのテストが成功したら、Postfix のセットアップは完了です!GitLab を設定するために、メールの受信ガイドを続けてください。
この文書は、Ubuntu documentation wiki の貢献者によるhttps://help.ubuntu.com/community/PostfixBasicSetupHowtoを参考にしました。