序章

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

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

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

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

Note: As of June 22, 2022, DigitalOcean is blocking SMTP for all new accounts. As a part of this new policy, we have partnered with SendGrid so our customers can still send emails with ease. You can learn more about this partnership and get started using SendGrid by checking out our DigitalOcean’s SendGrid Marketplace App.

前提条件

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

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

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

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

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

  1. sudo apt-get update

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

  1. sudo apt install mailutils

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

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

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

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

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

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

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

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

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

次の行を変更します inet_interfaces = allinet_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 . . .

ファイルを保存して閉じます。

単一のサーバーで複数のドメインをホストしている場合は、他のドメインを使用してPostfixに渡すこともできます。 mydestination 指令。 ただし、拡張性があり、そのような設定で問題が発生しない方法でPostfixを設定するには、この記事の範囲を超える追加の設定が必要です。

最後に、Postfixを再起動します。

  1. sudo systemctl restart postfix

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

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

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

  1. 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 ファイル。

  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を確実に設定する必要があります。

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