Ubuntu16.04に送信専用SMTPサーバーとしてPostfixをインストールして設定する方法
序章
Postfixはメール転送エージェント(MTA)であり、メールの送受信に使用されるアプリケーションです。 このチュートリアルでは、Postfixをインストールして設定し、ローカルアプリケーション(つまり、Postfixがインストールされているのと同じサーバーにインストールされているアプリケーション)のみが電子メールを送信できるようにします。
なぜあなたはそれをしたいのですか?
電子メールの送受信にサードパーティの電子メールプロバイダーをすでに使用している場合は、独自のメールサーバーを実行する必要はありません。 ただし、電子メール通知を送信する必要のあるアプリケーションをインストールしたクラウドサーバーを管理している場合は、サードパーティの電子メールサービスプロバイダーを使用したり、本格的なSMTPサーバーを実行したりする代わりに、ローカルの送信専用SMTPサーバーを実行することをお勧めします。 。
このチュートリアルでは、Postfixを送信専用SMTPサーバーとしてインストールおよび設定する方法を学習します。
前提条件
このチュートリアルに従うには、次のものが必要です。
-
Ubuntu16.04初期セットアップガイドでセットアップされた1つのUbuntu16.04ドロップレット(sudo非rootユーザーの作成を含む)
-
サーバーを指す
example.com
などの有効なドメイン名。 このホスト名チュートリアルに従って設定できます。
サーバーのホスト名は、このドメインまたはサブドメインと一致する必要があることに注意してください。 コマンドプロンプトでhostname
と入力すると、サーバーのホスト名を確認できます。 出力は、ドロップレットの作成時に付けた名前と一致する必要があります。
ステップ1—Postfixをインストールする
このステップでは、Postfixをインストールする方法を学びます。 メールのテストに必要なPostfixやその他のプログラムをインストールする最も効率的な方法は、mailutils
パッケージをインストールすることです。
まず、パッケージデータベースを更新します。
- sudo apt-get update
最後に、Postfixをインストールします。 mailtuils
をインストールすると、Postfixと、Postfixが機能するために必要な他のいくつかのプログラムがインストールされます。
- sudo apt install mailutils
インストールプロセスの終わり近くに、下の画像のようなウィンドウが表示されます。 デフォルトのオプションはインターネットサイトです。 これがこのチュートリアルの推奨オプションなので、TAB
を押してから、ENTER
を押します。
その後、次の画像のような別のウィンドウが表示されます。 システムメール名は、サーバーの作成時にサーバーに割り当てた名前と同じである必要があります。 subdomain.example.com
のようなサブドメインが表示されている場合は、example.com
だけに変更してください。 終了したら、TAB
、ENTER
の順に押します。
インストールが正常に完了したら、手順2に進みます。
ステップ2—Postfixを設定する
このステップでは、Postfixが実行されているサーバー、つまりlocalhostからのみメールを送信するリクエストを処理するようにPostfixを設定する方法を読みます。
そのためには、サーバーが内部通信に使用する仮想ネットワークインターフェイスであるループバックインターフェイスでのみリッスンするようにPostfixを構成する必要があります。 変更するには、nano
またはお好みのテキストエディタを使用してメインのPostfix設定ファイルを開きます。
- sudo nano /etc/postfix/main.cf
ファイルを開いた状態で、次のセクションが表示されるまで下にスクロールします。
. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
. . .
inet_interfaces = all
という行をinet_interfaces = loopback-only
に変更します。
. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
. . .
変更する必要があるもう1つのディレクティブは、mydestination
です。これは、local_transport
メール配信トランスポートを介して配信されるドメインのリストを指定するために使用されます。 デフォルトでは、値は次のようになります。
/etc/postfix/main.cf. . .
mydestination = $myhostname, example.com, localhost.com, , localhost
. . .
そのシナリオの推奨されるデフォルトは、以下のコードブロックに示されているため、次のように変更してください。
/etc/postfix/main.cf. . .
mydestination = $myhostname, localhost.$mydomain, $mydomain
. . .
ファイルを保存して閉じます。
1つのサーバーで複数のドメインをホストしている場合は、mydestination
ディレクティブを使用して他のドメインをPostfixに渡すこともできます。 ただし、拡張性があり、そのような設定で問題が発生しない方法でPostfixを設定するには、この記事の範囲を超える追加の設定が必要です。
最後に、Postfixを再起動します。
- sudo systemctl restart postfix
ステップ3—SMTPサーバーをテストする
このステップでは、ステップ1でインストールしたmailutils
パッケージの一部であるmail
コマンドを使用して、Postfixが外部の電子メールアカウントに電子メールを送信できるかどうかをテストします。
テストメールを送信するには、次のように入力します。
- echo "This is the body of the email" | mail -s "This is the subject line" your_email_address
独自のテストを実行する際には、本文と件名のテキストをそのまま使用することも、好みに合わせて変更することもできます。 ただし、your_email_address
の代わりに、有効なメールアドレスを使用してください。 ドメイン部分は、gmail.com
、fastmail.com
、yahoo.com
、または使用するその他の電子メールサービスプロバイダーにすることができます。
次に、テストメッセージを送信した電子メールアドレスを確認します。 受信トレイにメッセージが表示されます。 そうでない場合は、スパムフォルダを確認してください。
この構成では、送信するテストメールの From フィールドのアドレスはsammy@example.com
になります。ここで、 sammy はLinuxユーザー名であり、ドメイン部分はサーバーのホスト名。 ユーザー名を変更すると、Fromアドレスも変更されます。
ステップ4—システムメールの転送
最後に設定したいのは転送です。これにより、システムのrootに個人の外部メールアドレスでメールが送信されます。
システムで生成されたメールがあなたのメールアドレスに送信されるようにPostfixを設定するには、/etc/aliases
ファイルを編集する必要があります。
- sudo nano /etc/aliases
Ubuntu16.04のデフォルトインストールでのファイルの完全な内容は次のとおりです。
# See man 5 aliases for format
postmaster: root
この設定では、システムで生成された電子メールがrootユーザーに送信されます。 あなたがしたいのは、それらの電子メールがあなたの電子メールアドレスに再ルーティングされるようにそれを編集することです。 これを行うには、次のようにファイルを編集します。
/etc/aliases# See man 5 aliases for format
postmaster: root
root: your_email_address
your_email_address
を個人のメールアドレスに置き換えます。 終了したら、ファイルを保存して閉じます。 変更を有効にするには、次のコマンドを実行します。
- sudo newaliases
これで、以下を使用してrootアカウントに電子メールを送信することにより、それが機能することをテストできます。
- echo "This is the body of the email" | mail -s "This is the subject line" root
あなたはあなたのメールアドレスでメールを受け取るはずです。 そうでない場合は、スパムフォルダを確認してください。
結論
Postfixを使用して送信専用メールサーバーを設定するのに必要なのはこれだけです。 ドメインをスパマーから保護するために、いくつかの追加手順を実行することをお勧めします。
ユースケースが単一のアドレスでサーバーから通知を受信することである場合、スパムとしてマークされている電子メールはホワイトリストに登録できるため、大きな問題になります。 ただし、ユースケースが潜在的なサイトユーザーに電子メールを送信する場合(メッセージボードのサインアップの確認電子メールなど)、サーバーの電子メールが正当であると見なされる可能性が高くなるように、SPFレコードとDKIMを確実に設定する必要があります。
-
DebianWheezyにPostfixを使用してDKIMをインストールおよび構成する方法この記事はDebianWheezy向けに書かれていますが、同じ手順がUbuntu16.04にも当てはまります。
正しく設定されていると、ドメインから発信されたように見えるアドレスでスパムを送信することが困難になります。 これらの追加の構成手順を実行すると、一般的なメールプロバイダーがサーバーからの電子メールを正当なものと見なす可能性も高くなります。