序章

Postfixはメール転送エージェント(MTA)であり、メールの送受信に使用されるアプリケーションです。 このチュートリアルでは、Postfixをインストールして設定し、ローカルアプリケーション(つまり、Postfixがインストールされているのと同じサーバーにインストールされているアプリケーション)のみが電子メールを送信できるようにします。

なぜあなたはそれをしたいのですか?

電子メールの送受信にサードパーティの電子メールプロバイダーをすでに使用している場合は、独自のメールサーバーを実行する必要はありません。 ただし、電子メール通知を送信する必要のあるアプリケーションをインストールしたクラウドサーバーを管理している場合は、サードパーティの電子メールサービスプロバイダーを使用したり、本格的なSMTPサーバーを実行したりする代わりに、ローカルの送信専用SMTPサーバーを実行することをお勧めします。 。

このチュートリアルでは、Postfixを送信専用SMTPサーバーとしてインストールおよび設定する方法を学習します。

前提条件

このチュートリアルに従うには、次のものが必要です。

サーバーのホスト名は、このドメインまたはサブドメインと一致する必要があることに注意してください。 コマンドプロンプトでhostnameと入力すると、サーバーのホスト名を確認できます。 出力は、ドロップレットの作成時に付けた名前と一致する必要があります。

ステップ1—Postfixをインストールする

このステップでは、Postfixをインストールする方法を学びます。 メールのテストに必要なPostfixやその他のプログラムをインストールする最も効率的な方法は、mailutilsパッケージをインストールすることです。

まず、パッケージデータベースを更新します。

  1. sudo apt-get update

最後に、Postfixをインストールします。 mailtuilsをインストールすると、Postfixと、Postfixが機能するために必要な他のいくつかのプログラムがインストールされます。

  1. sudo apt install mailutils

インストールプロセスの終わり近くに、下の画像のようなウィンドウが表示されます。 デフォルトのオプションはインターネットサイトです。 これがこのチュートリアルの推奨オプションなので、TABを押してから、ENTERを押します。

Select Internet Site from the menu, then press TAB to select <Ok>, then ENTER

その後、次の画像のような別のウィンドウが表示されます。 システムメール名は、サーバーの作成時にサーバーに割り当てた名前と同じである必要があります。 subdomain.example.comのようなサブドメインが表示されている場合は、example.comだけに変更してください。 終了したら、TABENTERの順に押します。

Enter your domain name, then press TAB to select <Ok>, ENTER

インストールが正常に完了したら、手順2に進みます。

ステップ2—Postfixを設定する

このステップでは、Postfixが実行されているサーバー、つまりlocalhostからのみメールを送信するリクエストを処理するようにPostfixを設定する方法を読みます。

そのためには、サーバーが内部通信に使用する仮想ネットワークインターフェイスであるループバックインターフェイスでのみリッスンするようにPostfixを構成する必要があります。 変更するには、nanoまたはお好みのテキストエディタを使用してメインのPostfix設定ファイルを開きます。

  1. sudo nano /etc/postfix/main.cf

ファイルを開いた状態で、次のセクションが表示されるまで下にスクロールします。

/etc/postfix/main.cf
. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
. . .

inet_interfaces = allという行をinet_interfaces = loopback-onlyに変更します。

/etc/postfix/main.cf
. . .
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を再起動します。

  1. sudo systemctl restart postfix

ステップ3—SMTPサーバーをテストする

このステップでは、ステップ1でインストールしたmailutilsパッケージの一部であるmailコマンドを使用して、Postfixが外部の電子メールアカウントに電子メールを送信できるかどうかをテストします。

テストメールを送信するには、次のように入力します。

  1. echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

独自のテストを実行する際には、本文と件名のテキストをそのまま使用することも、好みに合わせて変更することもできます。 ただし、your_email_addressの代わりに、有効なメールアドレスを使用してください。 ドメイン部分は、gmail.comfastmail.comyahoo.com、または使用するその他の電子メールサービスプロバイダーにすることができます。

次に、テストメッセージを送信した電子メールアドレスを確認します。 受信トレイにメッセージが表示されます。 そうでない場合は、スパムフォルダを確認してください。

この構成では、送信するテストメールの From フィールドのアドレスはsammy@example.comになります。ここで、 sammy はLinuxユーザー名であり、ドメイン部分はサーバーのホスト名。 ユーザー名を変更すると、Fromアドレスも変更されます。

ステップ4—システムメールの転送

最後に設定したいのは転送です。これにより、システムのrootに個人の外部メールアドレスでメールが送信されます。

システムで生成されたメールがあなたのメールアドレスに送信されるようにPostfixを設定するには、/etc/aliasesファイルを編集する必要があります。

  1. sudo nano /etc/aliases

Ubuntu16.04のデフォルトインストールでのファイルの完全な内容は次のとおりです。

/ etc / aliases
# 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を個人のメールアドレスに置き換えます。 終了したら、ファイルを保存して閉じます。 変更を有効にするには、次のコマンドを実行します。

  1. sudo newaliases

これで、以下を使用してrootアカウントに電子メールを送信することにより、それが機能することをテストできます。

  1. echo "This is the body of the email" | mail -s "This is the subject line" root

あなたはあなたのメールアドレスでメールを受け取るはずです。 そうでない場合は、スパムフォルダを確認してください。

結論

Postfixを使用して送信専用メールサーバーを設定するのに必要なのはこれだけです。 ドメインをスパマーから保護するために、いくつかの追加手順を実行することをお勧めします。

ユースケースが単一のアドレスでサーバーから通知を受信することである場合、スパムとしてマークされている電子メールはホワイトリストに登録できるため、大きな問題になります。 ただし、ユースケースが潜在的なサイトユーザーに電子メールを送信する場合(メッセージボードのサインアップの確認電子メールなど)、サーバーの電子メールが正当であると見なされる可能性が高くなるように、SPFレコードとDKIMを確実に設定する必要があります。

正しく設定されていると、ドメインから発信されたように見えるアドレスでスパムを送信することが困難になります。 これらの追加の構成手順を実行すると、一般的なメールプロバイダーがサーバーからの電子メールを正当なものと見なす可能性も高くなります。