Ubuntu 14.04でPostfixを送信専用SMTPサーバーとしてインストールおよび設定する方法

前書き

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

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

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

電子メール通知を送信するアプリケーションの例はOSSECで、構成された任意の電子メールアドレスに電子メールアラートを送信します(How To Install and Configure OSSEC Security Notifications on Ubuntu 14.04を参照)。 OSSECまたは他の種類のアプリケーションは、サードパーティのメールプロバイダーのSMTPサーバーを使用してメールアラートを送信できますが、ローカル(送信専用)SMTPサーバーを使用することもできます。

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

Note:ユースケースが単一のアドレスでサーバーから通知を受信することである場合、スパムとしてマークされている電子メールはホワイトリストに登録できるため、重要な問題ではありません。

ユースケースが、掲示板のサインアップの確認メールなど、潜在的なサイトユーザーにメールを送信することである場合は、サーバーのメールが正当であると見なされる可能性が高くなるように、必ずStep 5を実行する必要があります。 サーバーのメールがスパムとしてマークされるという問題が引き続き発生する場合は、自分でさらにトラブルシューティングを行う必要があります。

前提条件

以下の前提条件を完了してください。

  • Ubuntu 14.04ドロップレット

  • initial setupを通過します。 つまり、sudo権限を持つ標準のユーザーアカウントが必要です。

  • ドロップレットを指すexample.comなどの有効なドメイン名を持っている

  • サーバーのホスト名はこのドメインまたはサブドメインと一致する必要があります。 コマンドプロンプトでhostnameと入力すると、サーバーのホスト名を確認できます。 出力は、ドロップレットの作成時に付けた名前(example.comなど)と一致する必要があります。

すべての前提条件が満たされている場合、このチュートリアルの最初のステップの準備ができています。

[[step-1 -—- install-postfix]] ==ステップ1—Postfixをインストールします

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

sudo apt-get install mailutils

mailtuilsをインストールすると、Postfixがインストールされるだけでなく、Postfixが機能するために必要な他のいくつかのプログラムもインストールされます。 そのコマンドを入力すると、次のような出力が表示されます。

The following NEW packages will be installed:
guile-2.0-libs libgsasl7 libkyotocabinet16 libltdl7 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0 mailutils mailutils-common mysql-common postfix ssl-cert

0 upgraded, 14 newly installed, 0 to remove and 3 not upgraded.
Need to get 5,481 kB of archives.
After this operation, 26.9 MB of additional disk space will be used.
Do you want to continue? [Y/n]

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

Select Internet Site from the menu

その後、次の画像のような別のウィンドウが表示されます。 System mail nameは、ドロップレットを作成したときにドロップレットに割り当てた名前と同じである必要があります。 mars.example.comのようなサブドメインが表示されている場合は、example.comだけに変更します。 完了したら、Tabキーを押してからEnterキーを押します。

Enter your domain name

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

[[step-2 -—- configure-postfix]] ==ステップ2—Postfixを設定する

このステップでは、Postfixが実行されているサーバー、つまりlocalhostからのみメールを送信するリクエストを処理するようにPostfixを設定する方法を読みます。 そのためには、サーバーが内部通信に使用する仮想ネットワークインターフェイスであるloopback interfaceのみをリッスンするように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

loopback-onlyの代わりに、localhostを使用して、変更されたセクションに次のように表示することもできます。

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = localhost

ファイルの編集が完了したら、保存して閉じます(CTRL + Xを押し、続いてYを押し、次にENTERを押します)。 その後、次のように入力してPostfixを再起動します。

sudo service postfix restart

[[step-3 -—- test-that-the-smtp-server-can-send-emails]] ==ステップ3—SMTPサーバーが電子メールを送信できることをテストします

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

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

echo "This is the body of the email" | mail -s "This is the subject line" [email protected]

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

次に、テストメッセージを送信したメールアドレスを確認します。

受信ボックスにメッセージが表示されます。 そうでない場合は、スパムフォルダを確認してください。

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

[[step-4 -—- forward-system-mail]] ==ステップ4—システムメールを転送する

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

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

sudo nano /etc/aliases

Ubuntu 14.04のデフォルトインストールでのファイルの全内容は、次のコードブロックに示されています。

# See man 5 aliases for format
postmaster:    root

この設定では、システムが生成した電子メールがルートユーザーに送信されます。 あなたがしたいことは、それらのメールがあなたのメールアドレスに転送されるように編集することです。 そのためには、ファイルを編集して次のようにします。

# See man 5 aliases for format
postmaster:    root
root:          [email protected]

[email protected]を個人の電子メールアドレスに置き換えます。 完了したら、ファイルを保存して閉じます。 変更を有効にするには、次のコマンドを実行します。

sudo newaliases

次のコマンドを使用してルートアカウントにメールを送信することで、動作することをテストできます。

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

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

[[optional-step-5 -—- protect-your-domain-from-spammers]] ===(オプション)ステップ5 —ドメインをスパマーから保護する

このステップでは、スパムへの使用からドメインを保護するのに役立つ記事へのリンクが表示されます。 これはオプションですが、強く推奨される手順です。これは、正しく構成されている場合、ドメインから発信されたと思われるアドレスでスパムを送信することが困難になるためです。

これらの追加の構成手順を実行すると、一般的なメールプロバイダーは、スパムとしてマークするのではなく、サーバーからのメールを正当なメールとして見る可能性が高くなります。

2番目の記事はDebian Wheezy向けに書かれていますが、Ubuntu 14.04にも同じ手順が適用されます。

Related