Ubuntu14.04に送信専用SMTPサーバーとしてPostfixをインストールして設定する方法
序章
PostfixはMTA(メール転送エージェント)であり、メールの送受信に使用されるアプリケーションです。 このチュートリアルでは、Postfixをインストールして設定し、ローカルアプリケーション(つまり、Postfixがインストールされているのと同じサーバーにインストールされているアプリケーション)のみが電子メールを送信できるようにします。
なぜあなたはそれをしたいのですか?
すでにサードパーティの電子メールプロバイダーを使用して電子メールを送受信している場合は、もちろん、独自のメールサーバーを実行する必要はありません。 ただし、電子メール通知を送信する必要のあるアプリケーションをインストールしたクラウドサーバーを管理している場合は、サードパーティの電子メールサービスプロバイダーを使用したり、本格的なSMTPサーバーを実行したりする代わりに、ローカルの送信専用SMTPサーバーを実行することをお勧めします。 。
電子メール通知を送信するアプリケーションの例はOSSECで、構成された任意の電子メールアドレスに電子メールアラートを送信します( Ubuntu 14.04にOSSECセキュリティ通知をインストールして構成する方法を参照)。 OSSECまたはその種の他のアプリケーションは、サードパーティの電子メールプロバイダーのSMTPサーバーを使用して電子メールアラートを送信できますが、ローカル(送信専用)SMTPサーバーを使用することもできます。
それがこのチュートリアルで行う方法を学ぶことです:Postfixを送信専用SMTPサーバーとしてインストールして設定する方法。
注:ユースケースが単一のアドレスでサーバーから通知を受信する場合、スパムとしてマークされている電子メールはホワイトリストに登録できるため、重要な問題ではありません。
ユースケースが、メッセージボードのサインアップの確認メールなど、潜在的なサイトユーザーにメールを送信する場合は、サーバーのメールが正当であると見なされる可能性が高くなるように、必ずステップ5を実行する必要があります。 サーバーの電子メールがスパムとしてマークされるのにまだ問題がある場合は、自分でさらにトラブルシューティングを行う必要があります。
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.
前提条件
以下の前提条件を満たしてください。
- Ubuntu14.04ドロップレット
- 初期設定を実行します。 つまり、次の標準ユーザーアカウントが必要です。
sudo
特権 - ドロップレットを指すexample.comのような有効なドメイン名を持っている
- サーバーのホスト名は、このドメインまたはサブドメインと一致する必要があります。 次のように入力して、サーバーのホスト名を確認できます
hostname
コマンドプロンプトで。 出力は、ドロップレットの作成時に付けた名前( example.com など)と一致する必要があります。
すべての前提条件が満たされている場合は、このチュートリアルの最初のステップの準備ができています。
ステップ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を押してインストールします。 インストールプロセスの終わり近くに、下の画像のようなウィンドウが表示されます。 デフォルトのオプションはインターネットサイトです。 これがこのチュートリアルの推奨オプションなので、Tabキーを押してからEnterキーを押します。
その後、次の画像のような別のウィンドウが表示されます。 システムメール名は、ドロップレットを作成したときに割り当てた名前と同じである必要があります。 mars.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
代わりに loopback-only
あなたも使用することができます localhost
、変更されたセクションも次のようになります。
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = localhost
ファイルの編集が完了したら、ファイルを保存して閉じます(CTRL + Xを押し、次にYを押し、次にENTERを押します)。 その後、次のように入力してPostfixを再起動します。
sudo service postfix restart
ステップ3—SMTPサーバーが電子メールを送信できることをテストする
このステップでは、Postfixが外部の電子メールアカウントに電子メールを送信できるかどうかをテストする方法を読みます。 を使用します mail
コマンドの一部です mailutils
手順1でインストールしたパッケージ。
テストメールを送信するには、次のように入力します。
echo "This is the body of the email" | mail -s "This is the subject line" [email protected]
独自のテストを実行する際には、本文と件名のテキストをそのまま使用することも、好みに合わせて変更することもできます。 ただし、 [email protected] の代わりに、有効なメールアドレスを使用してください。ドメイン部分は gmail.com 、 fastmail.com 、 yahoo.com 、または使用するその他の電子メールサービスプロバイダー。
次に、テストメッセージを送信した電子メールアドレスを確認します。
受信トレイにメッセージが表示されます。 そうでない場合は、スパムフォルダを確認してください。
注:この構成では、送信するテストメールの From フィールドのアドレスは、 [email protected] になります。ここで、
ステップ4—システムメールを転送する
最後に設定したいのは転送です。これにより、システムのrootに個人の外部メールアドレスでメールが送信されます。
システムで生成されたメールがあなたのメールアドレスに送信されるようにPostfixを設定するには、 /etc/aliases
ファイル。
sudo nano /etc/aliases
Ubuntu 14.04のデフォルトインストールでのファイルの完全な内容は、次のコードブロックに示されています。
# See man 5 aliases for format
postmaster: root
この設定では、システムで生成された電子メールがrootユーザーに送信されます。 あなたがしたいのは、それらの電子メールがあなたの電子メールアドレスに再ルーティングされるようにそれを編集することです。 これを行うには、次のようにファイルを編集します。
# See man 5 aliases for format
postmaster: root
root: [email protected]
[email protected]を個人のメールアドレスに置き換えます。 完了したら、ファイルを保存して閉じます。 変更を有効にするには、次のコマンドを実行します。
sudo newaliases
これで、以下を使用してrootアカウントに電子メールを送信することにより、それが機能することをテストできます。
echo "This is the body of the email" | mail -s "This is the subject line" root
あなたはあなたのメールアドレスでメールを受け取るはずです。 そうでない場合は、スパムフォルダを確認してください。
(オプション)ステップ5 —ドメインをスパマーから保護する
このステップでは、スパムに使用されることからドメインを保護するのに役立つ記事へのリンクが提供されます。 これはオプションですが、強くお勧めする手順です。正しく構成されていると、ドメインから発信されたように見えるアドレスでスパムを送信することが困難になるためです。
これらの追加の構成手順を実行すると、一般的なメールプロバイダーが、サーバーからの電子メールをスパムとしてマークするのではなく、正当なものと見なす可能性が高くなります。
- SPFレコードを使用してなりすましを防止し、電子メールの信頼性を向上させる方法
- DebianWheezyにPostfixを使用してDKIMをインストールおよび設定する方法
- また、サーバーのPTRレコードが、メールサーバーがメッセージを送信するときに使用しているホスト名と一致していることを確認してください。 DigitalOceanでは、コントロールパネルでドロップレットの名前を変更することでPTRレコードを変更できます
2番目の記事はDebianWheezy向けに書かれていますが、同じ手順がUbuntu14.04にも当てはまります。