ブログ記事Best Free SMTP Serversでは、電子メールを送信するためのクラ これらは、プロジェクトのすべてのサイズのために非常に一般的です。 しかし、Gmail SMTPまたはその代替品の電子メール中継サービスを使用したくない場合はどうなりますか? この記事では、ローカルSMTPサーバーをセットアップし、電子メール送信の依存関係を取り除く方法を説明します。
本当にSMTPサーバーが必要ですか?
送信SMTPサーバーを使用することは、電子メールを送信する伝統的な方法です。 別の解決策は、SMTPサーバーをバイパスして宛先に直接送信することです。 これは、直接送信として知られている、とあなたは、特定の電子メールソフトウェアプログラムを介してそれを使用することができます。 直接送信はあまり信頼できませんが、ここに理由があります:
- ポート25がISPによってブロックされている場合は使用できません。
- 多くの異なるサーバーへの複数の接続のため、一括メールには適していません。
- 個人化されていないメールを送信することはできません。
- メールは通常のSMTPサーバーから送信されないため、メールフィルタによってブロックされる可能性があります。
ダイレクトセンドを置いてみましょう。 あなたが興味を持っているかもしれないのは、あなた自身のSMTPサーバーを実行する理由です。
ローカルSMTPサーバーの長所と短所
長所 | 短所 |
---|---|
|
|
MailgunやSendPulseなどのクラウドベースのソリューションには、上記のすべての利点もあります。 ただし、これらの機能はすべて有料であり、サードパーティのサービスに依存する必要があります。 代わりに、特定のソフトウェアを使用してコンピュータ上にSMTPサーバーを設定できます。
ローカルSMTPサーバーの要件
これまでのところ、特定の要件はありません。 それにもかかわらず、あなたは次のために準備する必要があります:
- 一部のIspはポート25をブロックする可能性があります。 あなたのISPの提供者に連絡し、課すかもしれない限定についての学習によってこれを解決できる。 また、MXレコード解決のための正しいDNSサーバーとアクセス許可を要求する必要があります。
- バルクメールの場合、おそらくドメインとそれに関連付けられた固定IPアドレスを選択する必要があります。
SMTPサーバーのクイックセットアップ
さて、仕事をしましょう。 コンピュータにSMTPサーバーをセットアップするため、どのOSが使用されているかを知ることが重要です。 そのため、macOS、Windows、およびLinuxでこれを行う方法の3つの方法を確認します。
重要な注意:実際のメールアドレスにテストメールを送信すると、受信トレイに見つからない場合があります。 スパムフォルダを確認することを忘れないでください。 Gmail、Yahoo、および他の人のようなespは、新しいメール転送エージェントの疑いがあります。 MacOS用
macOS用
macOS Xの最新バージョンには、デフォルトのメールサーバであるPostfixがプリインストールされています。 だから、あなたがする必要があるのは、次のようにSMTPサーバー設定を微調整することです:
Postfix設定ファイル
- Postfixメイン設定ファイルが最初に動作します。 実行:
sudo vim /etc/postfix/main.cf
- Postfixに自分自身を識別するためにどの名前を使うべきかを他のメールサーバに伝えます。 次の行を追加します:
myhostname = john.example.commyorigin = example.com
ローカルユーザー名がJohnの場合、メールはfromであるように見えます[email protected].
- リレーホストは、認証後にメールを受け入れてSMTPサーバーに中継するマシンです。
relayhost=mail.example.com:25
- パスワードが保存されている追加の構成ファイルを使用してSASLを有効にする必要があります。
smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
- この行は、PostfixがTLS暗号化された接続のみを使用することを意味します。
smtp_tls_security_level = encrypt
- ここでは
main.cf
が完全にどのように見えるかです:
myhostname = john.example.commyorigin = example.comrelayhost=mail.example.com:25smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswdsmtp_tls_security_level = encrypt
- でファイルを保存する:
sudo postmap /etc/postfix/main.cf
SASLパスワードを持つファイル
-
sasl_passwd
ファイルを作成します:
sudo vim /etc/postfix/sasl_passwd
- 次の行を追加します:
mail.example.com:25 [email protected]:
- でファイルを保存する:
sudo postmap /etc/postfix/sasl_passwd
- Postfixを再起動します:
sudo postfix reload
ローカルSMTPサーバーの準備ができました。 テストメールを送信して試してみてください:
date | mail -s "Test email" [email protected]
注:この設定フローは、通常のPostfixデーモンを持つmacOS以外のマシンに適しています。
For Linux
ほとんどのLinuxディストリビューションには、最も一般的な2つのSMTP実装、SendmailとPostfixが同梱されています。 Sendmailは非常に複雑な設計をしており、安全性が低いため、私たちは再びPostfixを選びました。
インストール
あなたのマシンにPostfixがない場合は、最初にインストールしてください。 また、Postfixが機能するために必要なプログラムを含むメールパッケージMailutilsが必要です:
sudo apt install mailutils postfix
Postfix設定ウィンドウで、インターネットサイトのメール設定を選択する必要があります。 最後に、システムメール名を指定する必要があります。 これは、サーバーを指すドメイン名に割り当てた名前と同じである必要があります。 を使ってみましょうexample.com…..
設定
さて、localhostから電子メールを送信するリクエストを処理するようにPostfixを設定しましょう。 このためには、メイン設定ファイルを微調整する必要がありますmain.cf
:
sudo nano /etc/postfix/main.cf
行までスクロールダウンしてinet_interfaces = all
をinet_interfaces = loopback-only
に置き換えますまた、ドメインのリストを指定するmydestination
を変更する必要があります。 これは次のようになります:
mydestination = $myhostname, localhost.$example.com, $example.com
ファイルを保存し、Postfixを再起動します:
sudo systemctl restart postfix
最後に、テストメールを送信してみてください:
echo "Test email body" | mail -s "Test email subject line" receipient's_email_address
For Windows
MailEnableやApache Jamesなど、WINDOWS上でSMTPサーバーをセットアップするためのソフトウェアオプションがいくつかあります。 しかし、私たちはhMailServerと呼ばれる最も人気のあるものを選びました。
インストール
ここで最新バージョンをダウンロードしてインストールします。 インストールの開始時に、次の点に注意する必要があります:
- コンポーネントの選択ウィンドウで、完全インストールが選択されていることを確認します。 サーバーコンポーネントと管理コンポーネントを確認する必要があります。
- データベースサーバーの種類の選択ウィンドウで、組み込みのデータベースエンジンを確認します。
- hMailServerセキュリティウィンドウで、デフォルトユーザーのパスワードを作成します。
インストールしたら、hMailServerを実行し、次に設定しましょう。
設定
- 開始ウィンドウで接続をクリックし、インストール中に設定したパスワードを入力します。
- ドメインの追加をクリックし、対応するフィールドにドメイン名を入力します。 ところで、本当のものは電子メールを送信する必要はありませんので、あなたは偽のドメイン名を使用することができます。 しかし、この場合、偽のドメインが実際に存在しないことを確認してください。 [保存]をクリックすると、左側のタブにドメインが作成されていることが表示されます。
- 左のタブでAccountsフォルダを選択し、追加…をクリックして設定します。 ここで行う必要があるのは、アドレスフィールドに名前を入力することだけです。 これにより、メールアドレスが設定されます。 必要に応じて、パスワードを指定できます。 [保存]をクリックし、左側のタブの[設定]に進みます。
- 設定スレッドを展開し、プロトコルを選択します。 POP3とIMAPのチェックを外します。 これらのプロトコルの詳細については、私たちのブログ記事IMAP対POP3対SMTPをお読みください。 [保存]をクリックします。
- 今、設定スレッドで詳細を選択し、右のタブのデフォルトドメインフィールドにlocalhostを入力します。 [保存]をクリックします。 詳細設定を終了するには、[自動禁止]を選択し、[有効]ボックスのチェックを外します。 [保存]をクリックします。
- 最後に、Utilitiesスレッドを展開し、Diagnostics診断を選択します。 テストを実行するドメインを選択し、”開始”をクリックします。 すべてのテストに興味があるわけではなく、サーバーの詳細を収集して送信ポートをテストするだけです。 これらのものは緑色にマークする必要があります。
それだけです。 今、あなたはあなたのテストメールを送信することができます。 これはPowerShellで行うことができます–それは速くて簡単です。 これの詳細については、PowerShellからメールを送信するブログ記事をお読みください。 次の行を実行します(データの入力を忘れないでください):
Send-MailMessage -To "<recipient's email address>" -From "<your email address>" -Subject "Your email subject" -Body "Your email body text" -Credential "<your username>" -SmtpServer "127.0.0.1" -Port 25
ポップアップウィンドウで、パスワードを入力する必要があります。
SMTPサーバーはテストに適していますか?
ほとんどの場合、人々はテスト目的でローカルSMTPサーバーをセットアップします。 電子メールを送信するアプリを開発している場合は、この機能をテストする必要があり、ローカルマシン上で実行されている実際のSMTPサーバーが良いオプシ しかし、それはありますか? 一方で、ローカルSMTPサーバーをインストールして構成するのは面倒ではありません。 しかし、はるかに良い解決策があります。
テストにMailtrapを使用すると、偽のSMTPサーバーに基づいた高度なツールが得られます。 つまり、アプリは電子メールを送信しますが、実際には配信されません。 あなたの送信メールはMailtrapデモ受信トレイになります。 そのため、テストを実行するたびに実際の電子メール受信者やスパムフォルダを確認することを心配する必要はありません。 インストールはまったく必要ありません。 あなたがする必要があるのは、Mailtrap資格情報を使用してSMTP設定を更新することだけです。 または、すぐに使用できるコードスニペットをコピーして貼り付けることもできます。 最も一般的なフレームワークとプログラミング言語では、さまざまな統合が利用可能です。 その他の利点と機能の詳細については、Mailtrap Getting Started Guideをお読みください。
をまとめてローカルメールサーバーを実行するのは、時には苦痛になることがあります。 独自のSMTPサーバーを使用して優れた電子メール配信を実現するには、多大な知識と労力が必要です。 おそらく、それはテスト目的のための良いオプションですが、Mailtrap、または他の電子メールテストツールは、より良いそれを行います。 だから、あなたは実際にローカルSMTPサーバーが必要ですか? それに答えることができるのはあなただけです。 がんばろう!