1,000円を切る低価格で登場、「さくらのVPS」をチェック――サーバー構築編 9ページ

基本的なSMTPサーバーの設定

 VPSでメールを送受信する場合、もっとも基本となるのが「SMTPサーバーのみを稼働させ、届いたメールはVPSにログインして確認する」設定だ。この場合、SMTPサーバーのみを設定すれば良い。設定は前述のとおりsendmail.mcファイルを編集することで行う。

$ sudo vi sendmail.mc

 まず、ファイル中で「DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl」という行がら「Addr=127.0.0.1,」の部分を削除する。デフォルトではsendmailはlocalhost(127.0.0.1)からのアクセスしか受け付けないが、この変更により外部からメールを送受信できるようになる。なお、「dnl」は「delete through newline」、つまりこの行の最後までを無視する(コメントアウトする)という意味である。

dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
# DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl  ←「Addr=127.0.0.1, 」の部分を削除

 また、「LOCAL_DOMAIN(`localhost.localdomain’)dnl」行の「localhost.localdomain」の部分を利用するホスト名に変更する。たとえばホスト名が「example.com」の場合、次のようにする。

dnl #
dnl # Also accept email sent to "localhost.localdomain" as local email.
dnl #
# LOCAL_DOMAIN(`localhost.localdomain')dnl
LOCAL_DOMAIN(`example.com')dnl  ←ドメインを「example.com」に変更

 以上でsendmai.mcファイルの編集は完了だ。変更を反映させるため、/etc/mailディレクトリ内で「make」コマンドを実行する。

$ cd /etc/mail
$ sudo make

 makeコマンドを実行すると、sendmail.mcをベースに設定ファイルsendmail.cfが作成される。この作業を忘れるとsendmailに設定が反映されないので注意してほしい。

 次に、「local-host-names」ファイルに利用するホスト名を追加しておく。たとえばホスト名が「example.com」の場合、次のようにする。

$ sudo vi local-host-names
 :
 :
# local-host-names - include all aliases for your machine here.
example.com  ←このようにホスト名を追加する

 これにより、「example.com」宛のメールを受信できるようになる。最後にsendmailを再起動し、設定を反映させる。

$ sudo /sbin/service sendmail restart
stopping sm-client:                                        [  OK  ]
stopping sendmail:                                         [  OK  ]
starting sendmail:                                         [  OK  ]
starting sm-client:                                        [  OK  ]

 以上で作業は完了となる。外部から「<ユーザー名>@<ホスト名>」宛にメールを送信し、正しく受信できるか確認しておこう。

メールの転送設定

 SMTPサーバーのみを稼働させ、受信したメールは別のメールアドレスに転送する場合、上記で説明したSMTPサーバーの設定に加えて、メール転送の設定を行うことになる。

 メールの転送は管理者権限で一括設定するほか、各ユーザー側での設定も可能だ。まず管理者権限で一括設定するには、「/etc/aliases」ファイルを編集する。たとえば、「foo@ドメイン名」というメールアドレスに届いたメールを、「foo@example.com」というメールアドレスに転送するには、/etc/aliasesファイルに次の行を追加すれば良い。

foo:	foo@example.com

 /etc/aliasesファイルを用いた転送設定では、VPS上にアカウントがないユーザー宛のメールの転送も可能だ。たとえば上記の例では、サーバー上に「foo」というアカウントがない場合でも問題なくメールの転送が行われる。

 また、ユーザーのホームディレクトリに「.forward」ファイルを作成し、そこに転送先のメールアドレスを記述することでそのユーザー宛のメールを指定した宛先に転送できる。ただし、この設定は当然ながらVPS上にアカウントがあるユーザーでしか利用できない。

$ cd ‾/
$ touch .forward
$ chmod 600 .forward  ←.forwardファイルが他ユーザーから読める場合、転送時にエラーとなるため変更しておく
$ vi .forward
 :
 :
foobar@example.com  ←.forwardファイル内に転送先を記述する