LoginSignup
226

More than 5 years have passed since last update.

Ubuntuでメールサーバー構築

Posted at

Ubuntuでメールサーバーを構築した際の手順です。
送信サーバーとしてPostfix、受信サーバーとしてdovecotを使用します。

構築前に知っといたほうがいいメールの知識

メールを送信するにはアドレスを知っている必要があります。
このメールアドレスは下記のように表現されます。

hogehoge@gmail.com

@の前の「hogehoge」はユーザー名で、
@の後の「gmail.com」はサーバーのインターネット上の所在地(ドメイン)になります。
今から構築する送信サーバーから受信サーバーにメールを送る場合、

root@localhost

とすればOKです。(rootユーザーのメールボックスに届きます。)

環境

OS:Ubuntu 14.04 LTS
Postfix:2.11.0 (確認コマンド:\$ postconf | grep mail_version)
Dovecot:2.2.9 (確認コマンド:\$ dovecot --version)

送信サーバー(Postfix)の構築

Postfixのインストール

$ sudo apt-get install -y postfix

下記のような画面が出てきますが、「設定なし」を選択します。
image

インストール後、「main.cf」という設定ファイルを/etc/postfix/ディレクトリにコピーしておきます。

$ sudo cp /usr/lib/postfix/main.cf /etc/postfix/main.cf

postfixの設定を編集

$ sudo vi /etc/postfix/main.cf

下記のように編集します。

# 59行目:コメント解除
mail_owner = postfix
 
# 76行目:コメント解除しホスト名指定★
myhostname = mail.hogefuga.com
 
# 83行目:コメント解除しドメイン名指定
mydomain = hogefuga.com

# 104行目:コメント解除
myorigin = $mydomain

# 118行目:コメント解除
inet_interfaces = all

# 166行目:コメント解除
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# 209行目:コメント解除
local_recipient_maps = unix:passwd.byname $alias_maps

# 268行目:自ネットワーク追記(ifconfigコマンドでeth0のinetアドレスが10.0.2.15だったので10.0.0.0/24を追記)
mynetworks = 127.0.0.0/8, 10.0.0.0/24

# 388行目:コメント解除
alias_maps = hash:/etc/aliases

# 399行目:コメント解除
alias_database = hash:/etc/aliases

# 421行目:コメント解除 ( Maildir形式へ移行 )
home_mailbox = Maildir/

# 557行目:コメントにしてその下に追記
#smtpd_banner = $myhostname ESMTP $mail_name (@@DISTRO@@)
smtpd_banner = $myhostname ESMTP

# 632行目:追記
sendmail_path = /usr/sbin/postfix

# 637行目:追記
newaliases_path = /usr/bin/newaliases

# 642行目:追記
mailq_path = /usr/bin/mailq

# 648行目:追記
setgid_group = postdrop

# 652行目:コメント化
#html_directory =

# 656行目:コメント化
#manpage_directory =

# 661行目:コメント化
#sample_directory =

# 665行目:コメント化
#readme_directory =

# 最終行へ追記:送受信メールサイズを10Mに制限
message_size_limit = 10485760
# メールボックスサイズを1Gに制限
mailbox_size_limit = 1073741824

# 以下SMTP-Auth用
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

メールエイリアスのデータベースを再構築するために書きコマンドを実行します。

$ newaliases

postfixを再起動

設定を反映させるために、postfixを再起動します。

$ sudo /etc/init.d/postfix restart

送信テスト

postfixがうまく構築できたかどうかを確認するため、テストメールを送信してみます。
と、その前に、mailコマンドを使えるように「mailutils」をインストールしておきます。

$ sudo apt-get install mailutils

メールを送信してみます。
※メールを送信するには、改行後、「.」を入力し[Enter]を押します。

# mail hogehogefugafuga@gmail.com
Cc:
Subject: test
hogehogefugafuga
.

結果、下記のようにGmailに送られます。
image

受信サーバー(dovecot)の構築

Dovecotのインストール

$ sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d

以下のように独自 SSL 証明書を作成されるか問われますが、
必要ならば後でも作成できるので、「いいえ」を選択します。

image

Dovecotの設定を編集

■ /etc/dovecot/dovecot.conf を変更

$ sudo vi /etc/dovecot/dovecot.conf

# 30行目:変更 ( IPv6をリスンしない場合 )
listen = *

■ /etc/dovecot/conf.d/10-auth.conf を変更

$ sudo vi /etc/dovecot/conf.d/10-auth.conf

# 10行目:コメント解除し変更(プレーンテキスト認証も許可する)
disable_plaintext_auth = no

# 100行目:追記
auth_mechanisms = plain login

■ /etc/dovecot/conf.d/10-mail.conf を変更

$ sudo vi /etc/dovecot/conf.d/10-mail.conf

# 30行目:Maildir形式に変更
mail_location = maildir:~/Maildir

■ /etc/dovecot/conf.d/10-master.conf を変更

$ sudo vi /etc/dovecot/conf.d/10-master.conf

# 96-98行目:コメント解除し追記
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
}

■ /etc/dovecot/conf.d/10-ssl.conf を変更

$ sudo vi /etc/dovecot/conf.d/10-ssl.conf

# 6行目:コメント解除して変更(SSLなし)
ssl = no

# 12,13行目:コメントにする
#ssl_cert = </etc/dovecot/dovecot.pem
#ssl_key = </etc/dovecot/private/dovecot.pem

■ Dovecotを起動

$ sudo initctl start dovecot

受信テスト

受信サーバーが正しく動くかどうかを検証します。
送信テスト時と同じようにメールコマンドを使ってメールを送信してみます。
ただし、この時の宛先(@以降)を「localhost」にします。

# mail root@localhost
Cc:
Subject: test
hogehogefugafuga
.

上記実行後、@以前をrootとしたので、
/root/Maildir ディレクトリが作成されているはずですので、
確認して見てください。(下記のようになっていれば受信テストOK)

# ll /root/Maildir/
合計 20
drwx------  5 root root 4096  3月 16 10:39 ./
drwx------ 10 root root 4096  3月 16 10:39 ../
drwx------  2 root root 4096  3月 16 10:39 cur/
drwx------  2 root root 4096  3月 16 10:39 new/
drwx------  2 root root 4096  3月 16 10:39 tmp/

イントラネット外から受信をしたい場合

メールの送信に関しては、イントラネット外へ送信出来ますが、
受信に関しては、ファイアウォールやルーター(モデム含む)の設定が必要です。

受信するために必要なもの

■ ドメイン or グローバルIPアドレス

インターネット上の住所。
※@の後はドメインだけではなくグローバルIPアドレスでも可です。

固定IPやドメイン登録といった作業が必要になります。
ドメイン取得に関しては、
http://qiita.com/mizuki_takahashi/items/b0c5adebea48b9f2f7a6
が参考になると思います。

■ ポート解放

メールの送受信に使用するポートは下記の通りです。

送受信 ポート番号 用途
送信 25 smtp
送信 465 smtp(SSL)
送信 587 Submissionポート
受信 110 POP
受信 995 POP(SSL)
受信 143 IMAP
受信 993 IMAP(SSL)

ただし、上記ポートを開放するための手順は、
モデムやルーターの機種によって設定方法がまちまちなので、下記を参考にしてみてください。
http://27bit.com/router.html

以上です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
226