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ファイル内に転送先を記述する