Ubunt Serverを独自ドメインで運用しているが、SSLボックス(CoreSSL) の公式SSL証明書を発行して貰うには、ドメイン所有者である事を証明するために、ドメイン名を含むメールアドレスへの確認メールを受け取る必要がある。そこで、Ubuntu Serverに「postfix」メールサーバを動かして、確認メールを受信できるようにする。
今回はインターネットからのメールが受信できるまでの基本的な設定とする。ローカルLAN内の送受信は問題ないが、インターネットへメール送信しようとすると、SSL認証やら25ポートブロックとか、いろいろ面倒な事があるので、とりあえず認証確認メールが受信できる事を目標とする。
postfixでググってみると、いろいろ書いてあって判りにくい。
でも、Ubuntuではインストール時のダイアログで、基本的な設定ファイルは自動的に作成され、ローカルメールとメール受信だけなら簡単に使えた。
追記(2018/6/2)
Ubuntu 18.04 LTS Serverでも動作する事を確認した。
準備
1)「お名前.com」のDNS設定で、MXレコードを登録
メールサーバのホスト名を登録。
私は「mail.ドメイン名
」のようなAレコードホストを追加し、MXレコードとした。
2)ルータの設定
25ポート(smtp)が、運用するUbuntuサーバと外部から通信できるように、静的マスカレードを設定。
postfixのインストール
Ubuntuサーバで下記のコマンドを実行。
$ sudo apt install postfix
下記のような画面がでるので「インターネットサイト」を選択。
続いて下記の画面では、ドメイン名(例. sample.com)を入力。(メールサーバのホスト名ではない)
postfixの設定
設定ファイルは /etc/postfix/main.cf
$ sudo nano /etc/postfix/main.cf
ほぼ設定は終わっているが、下記の箇所を確認し修正。
1)メールサーバのホスト名
お名前.comに登録したホスト名
myhostname = mail.sample.com
2)メールを受け付けるドメイン名
お名前.comで取得したドメイン名が含まれている事
mydestination = $myhostname, sample.com, localhost.localdomain, localhost
3)postfixの再起動
上記設定を確認したら、下記コマンドで再起動
$ sudo service postfix restart
自分ユーザ名宛て以外のメールを受け取る
エイリアスファイル(/etc/aliases
)を使う事によりひとつのアカウントに対して、複数のメールアドレスを設定できる。
デフォルトでは下記のような、メールシステム管理者用のアカウント「postmaster」がこのファイルで設定されている。このファイルを使用すると、新たなユーザを増やすことなくメールアカウント設定追加できる。
postmaster: root
今回は、認証メールで必要なアドレスフォーマットが「 admin@ドメイン名
」なので、admin
宛てのメールをhogeuser
宛てに転送する設定を追加する
$ sudo /etc/aliases
下記行を追加
admin: hogeuser
設定ファイルを修正したら、エイリアスファイルをデータベース化(/etc/aliases.db
ファイルの作成)し、「newaliases」コマンド実行し、Postfixに即時反映させる。
$ sudo postalias /etc/aliases
$ sudo newaliases
mailコマンドをインストール
メールの送受信する為に、mailコマンドをインストールする。メールコマンドは幾つのパッケージかあるが、私には使い易かった bsd-mailx
を使う。
$ sudo apt install bsd-mailx
メールの送信テスト
まずは、mailコマンドを使って自分自身宛にメールを送信してみる
$ mail hogeuser@localhost
Subject: test
test mail
.
Cc:
$
mailコマンドの引数で、宛先のアドレスを指定。本文の終了は .
で終わる。
メールの受信確認
サーバにログインした時に、メールが届いていれば、下記のようなメッセージが表示される。
You have new mail.
メールを読むには、mail
コマンドを使う。
mailコマンド実行し、読みたいメールの番号を入力する。終了は q
$ mail
Mail version 8.1.2 01/15/2001. Type ? for help.
"/var/mail/hogeuser": 1 message 1 new
>N 1 hogeuser@sample.com Fri Mar 24 12:32 14/429 test
& 1
Message 1:
From hogeuser@sample.com Fri Mar 24 12:32:48 2017
X-Original-To: hogeuser@localhost
To: hogeuser@localhost
Subject: test
Date: Fri, 24 Mar 2017 12:32:48 +0900 (JST)
From: hogeuser@sample.com (hogeuser)
test mail
& q
Saved 1 message in /home/hogeuser/mbox
受信したメールは、ホームディレクトリの mbox
ファイルに追加保存される。
次に、外部メール(yahooメールやgmailなど)から、admin@ドメイン名
宛てにメール送信してみて受信できる事を確認。
メール保管形式について
メールサーバーにおけるメール保管形式である mbox 形式と Maildir 形式がある。この記事では、mbox 形式で使った。
mbox 形式は古くから使われている形式で、受信した全てのメールを平文で1つのファイルに連結して保管する形式。それに対して Maildir 形式は新しい形式で、1通のメールを1つのファイルとして保管する形式。
Maildir 形式にするには、「main.cf
」に下記行を追加記述する事で変更できる。
home_mailbox = Maildir/
Mildir 形式では、ホームディレクトリの Maildir/
フォルダに、メール別のファイルに分割し格納される。
但し、この設定を行うとログイン時の着信メッセージや、mailコマンドでのメールの読み出しができない。メールを読むためには、dovecot
サービスや別メールソフトなどが必要となるが、最近は Maildir 形式で使われる事が多いよう。
今回は、サクっと認証メールを受信したいだけなので、mbox 形式のままで十分。
補足
- お名前.comのDNS設定では、MXレコードにはAレコードしか設定できない。wwwホストはcnameを使っているので、それが指定できればベストだったが、仕方ないので、お名前.comで配布のDDNS更新ツール(Windows版)を使って、このメールサーバのIPアドレスを定期的に更新するようにした。
- インストール済みのパッケージを調べるには
$ dpkg -l
- 既にpostfixがインストール済みで、パッケージの再設定を行いたい場合は下記コマンドを実行
$ sudo dpkg-reconfigure postfix
/etc/mailname
に、受信するメールドメイン名が記述されている- mailコマンドは複数パッケージ入っている場合は下記で切り替えられる
$ sudo update-alternatives --config mailx
- 上述した設定で、インターネット外部からのメールは受信はできるが、外部への送信に関しては最近はセキュリティーの関係でまずできない。送信できるようにする為には、更にpostfixへの追加設定が必要。今後チャレンジしていきたい。
参照記事
- 【Ubuntu 16.04 LTS Server】ApacheでSSL通信(https)する(公式SSL証明書:CoreSSLを取得)
- 【RTX1200】ヤマハルータで、お名前.comの独自ドメイン名を使う
コメント