開発者ドキュメント

Debian9に送信専用SMTPサーバーとしてPostfixをインストールして設定する方法

序章

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

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

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

このチュートリアルでは、PostfixをDebian9に送信専用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をインストールする方法を学びます。 2つのパッケージが必要になります。 mailutils、Postfixが機能するために必要なプログラムが含まれています。 postfix 自体。

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

  1. sudo apt update

次に、インストールします mailtuils:

  1. sudo apt install mailutils

最後に、インストールします postfix:

  1. sudo apt install postfix

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

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

これでPostfixがインストールされ、構成設定を変更する準備が整いました。

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

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

そのためには、サーバーが内部通信に使用する仮想ネットワークインターフェイスであるループバックインターフェイスでのみリッスンするように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.$your_domain, $your_domain . . .

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

注: 1つのサーバーで複数のドメインをホストしている場合は、他のドメインを使用して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

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

/ etc / aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root

The postmaster: root この設定により、システムで生成された電子メールがrootユーザーに送信されます。 これらの設定を編集して、これらの電子メールが自分の電子メールアドレスに再ルーティングされるようにします。 これを行うには、次のようにファイルを編集します。

/ etc / aliases
mailer-daemon: postmaster
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を確実に設定する必要があります。

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

モバイルバージョンを終了