このチュートリアルでは、DebianでMailjetを使用してPostfixSMTPリレーを設定する方法を説明します。 Postfixは人気のあるオープンソースのSMTPサーバーです。以前、Modoboaを使用してDebianで独自の電子メールサーバーをすばやくセットアップする方法についての記事を書きました。これは、多くの読者が独自の電子メールサーバーを実行するのに役立ちました。
ただし、一部の読者から、メールスパムを制御する方法として、ホスティングプロバイダーまたはISPによってポート25がブロックされているため、メールを送信できなかったとのことです。 Vultrは、要求された場合にポート25のブロックを解除し、ScalaHostingはポート25をまったくブロックしないため、ScalaHostingVPSを使用することをお勧めします。 DigitalOceanなどの他のホスティングプロバイダーやISPは、ポート25のブロックを解除しないため、ホスティングプロバイダーを変更できない、または変更したくない場合は、このブロックを回避するにはどうすればよいですか?
レスキューへのSMTPリレー
ポート25をバイパスし、ポート587を使用するため、SMTPリレーを使用して外部に電子メールを送信できます。SMTPリレーを使用すると、独自の電子メールサーバーが宛先の電子メールアドレスに直接電子メールを送信しません。代わりに、ユーザーに代わってメールを送信する中間メールサーバー(スマートホストまたはリレーホストとも呼ばれます)があります。メールサーバーはポート587でスマートホストと通信し、スマートホストはポート25で受信者のメールサーバーと通信します。
SMTPリレーは、何らかの理由でIPアドレスがブラックリストに登録されている場合に、スパム対策ブラックリストを回避するのにも役立ちます。受信者のメールサーバーは、スマートホストのIPアドレスを、サーバーのIPアドレスではなく、公開されているスパム対策ブラックリストと照合します。SMTPリレーサービスはIPの評判を維持しているため、メールはIPブラックリストを通過できます。
Mailjetを使用して1日あたり200通のメールを無料で送信
スマートホストとして機能できる電子メールサービスプロバイダー(ESP)がいくつかあります。少額の料金を請求するものもあれば、毎月無料の割り当てを提供するものもあります。この記事では、1日あたり200通のメールを無料で送信できるメールサービスプロバイダーであるMailjetの使用方法を紹介します。
Mailjetの良いところは、無料のSMTPリレーサービスを使用するときにクレジットカードの詳細を入力する必要がないことです。毎月無料の割り当てを提供するが、クレジットカードの詳細を入力する必要がある他のESPがあります。 (クレジットカードを持っていない場合にどれほどイライラするかはわかっています。)Mailjetは、他のESPと比較してセットアップも簡単です。
mailjet.comでアカウントを作成します。次に、ダッシュボードで、実行する必要がある3つのことを確認できます。
- SMTPの設定
- 送信者アドレスの管理
- ドメイン認証(SPFおよびDKIM)の設定
ステップ1:DebianでのPostfixSMTPリレーの設定
まず、次のコマンドを使用して、DebianにPostfixSMTPサーバーをインストールしましょう。 サーバーでPostfixがすでに実行されている場合は、Postfixのインストールをスキップしてください 、ただし、 libsasl2-modules
をインストールする必要があります パッケージ。
sudo apt install postfix libsasl2-modules
次のメッセージが表示されたら、Tabキーを押してEnterキーを押します。
次に、2番目のオプションを選択します:インターネットサイト
。
次に、システムメール名を設定します。たとえば、ドメイン名 linuxbabe.com
を入力します 。
Postfixをインストールしたら、構成ファイルを開きます。
sudo nano /etc/postfix/main.cf
次の行を見つけます。
relayhost =
デフォルトでは、その値は設定されていません。 mailjetアカウントからこの値を取得する必要があります。 mailjetダッシュボードで、[ setup my SMTP
]をクリックします 。
SMTPサーバーアドレスとSMTP資格情報が表示されます。
Postfix設定ファイルでrelayhost
の値を設定します in-v3.mailjet.com:587
へ 。
relayhost = in-v3.mailjet.com:587
次に、このファイルの最後に次の行を追加します。
# outbound relay configurations smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000
ファイルを保存して閉じます。次に、 / etc / postfix / sasl_passwd
を作成します ファイル。
sudo nano /etc/postfix/sasl_passwd
以下のように、SMTPリレーホストとSMTP資格情報をこのファイルに追加します。 api-key
を置き換えます およびsecret-key
実際のMailjetAPIキーと秘密キーを使用します。
in-v3.mailjet.com:587 api-key:secret-key
ファイルを保存して閉じます。次に、 postmap
を使用して対応するハッシュデータベースファイルを作成します 。
sudo postmap /etc/postfix/sasl_passwd
これで、ファイル /etc/postfix/sasl_passwd.db
が作成されます。 。変更を有効にするには、Postfixを再起動します。
sudo systemctl restart postfix
デフォルトでは、 sasl_passwd
およびsasl_passwd.db
ファイルは、サーバー上のすべてのユーザーが読み取ることができます。権限を600に変更して、rootのみがこれら2つのファイルの読み取りと書き込みを行えるようにします。
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
今後、Postfixはmailjetを介してメールを送信します。
ステップ2:送信者アドレスを追加する
mailjetを介してメールを送信するには、送信者ドメインまたは送信者アドレスを追加する必要があります。 mailjetダッシュボードで、[送信者アドレスの管理
]をクリックします 。ドメイン全体または特定のメールアドレスを検証できます。
ステップ3:ドメイン認証の設定
このステップでは、SPFとDKIMレコードを設定する必要があります。これは、メールをスパムフォルダではなく受信者の受信トレイに送信する場合に強くお勧めします。
- SPF:SenderPolicyFramework。これは、ドメインからの電子メールの送信を許可するIPアドレスを指定するDNSレコードです。
- DKIM:DomainKeysIdentifiedMail。 Mailjetは、秘密鍵を使用して電子メールにデジタル署名します。 DKIMレコードには、受信者の電子メールサーバーが署名を検証できるようにする公開鍵が含まれています。
mailjetダッシュボードで、[ドメイン認証の設定
]をクリックします 。デフォルトでは、SPFステータスとDKIMステータスの両方がエラーになっています。 管理コード>をクリックします ボタンをクリックし、指示に従ってSPFおよびDKIMレコードを追加します。
SPFおよびDKIMレコードが作成されたら、しばらく待って、mailjetWebページを更新します。 DNSホスティングサービスによっては、新しいDNSレコードがインターネット上で伝播するのに時間がかかる場合があります。 SPFおよびDKIMレコードが正しく設定され、伝播が完了すると、mailjetはSPFおよびDKIMレコードが適切であることを通知します。
テストメールの送信
これで、 mailx
を使用してテストメールを送信できます。 以下のようなコマンド。
sudo apt install bsd-mailx echo "this is a test email." | mailx -r from-address -s hello to-address
Webメールクライアントまたはデスクトップメールクライアントからテストメールを送信することもできます。 https://www.mail-tester.comでメールスコアをテストすることもお勧めします。ご覧のとおり、満点です。
トラブルシューティング
メールが配信されず、メールログ( /var/log/mail.log
)に次のメッセージが見つかった場合 )、
Relay access denied (in reply to RCPT TO command))
次に、 / etc / postfix / sasl_passwd
を編集する必要がある場合があります ファイルを作成し、以下のようにホスト名の後のポート番号を削除します。
in-v3.mailjet.com api-key:secret-key
ファイルを保存して閉じます。次に、インデックスファイルを再度作成します。
sudo postmap /etc/postfix/sasl_passwd
変更を有効にするには、Postfixを再起動します。
sudo systemctl restart postfix
これで、メールキューをフラッシュできます(以前のメールの配信を試みます)。
sudo postqueue -f
ドメインの追加
新しいドメイン名用に新しいマシンにメールサーバーを設定し、この新しいドメイン名用にSMTPリレーを設定する場合は、同じ手順に従います。
- PostfixSMTPリレー設定を構成します
- Mailjetダッシュボードで新しいドメイン名を検証します
- SPFとDKIMの検証を設定する