SMTPサーバーのセットアップ、使用法、およびベストプラクティス
公開: 2022-04-08電子メールが実際にどのように機能するのか疑問に思ったことはありません。電子メールを送信すると、数秒以内に受信者の受信トレイに届きます。これを実現する技術は、SMTP(Simple Mail Transfer Protocol)です。 IMAP / POP3サーバーを使用して受信したメールがサーバーに保存される方法は別の時代の話です。今のところ、SMTPについて説明します。記事の終わりまでに、STMPプロトコル、SMTPサーバーについて完全に理解していただければ幸いです。 、一般的なオプションと、メールが確実にスパムに届くようにする方法。
SMTPとは何ですか?
Simple Mail Transfer Protocol(SMTP)は、電子メールの送信に使用されるプロトコルであり、SMTPサーバーがインターネット上の他のSMTPサーバーまたはPOP3 / IMAPサーバーと通信し、相互に理解できるようにするための共通の標準を定義します。 電子メールの転送に関与するさまざまなエンティティが共通の言語を話すことを保証すると言うことができます。
SMTPサーバーとは何ですか?
SMTPプロトコルは、アプリケーションによって使用可能にする必要があります。電子メールの送信または電子メールのリレーを希望するユーザーのSMTP要求に応答するこのアプリケーションは、SMTPサーブ/SMTPリレーと呼ばれます。 以下に示すように、2つのタイプに分けることができます。どちらも、わずかな違いを除いてほとんど同じです–
- SMTPサーバー: SMTPリレーと同じものですが、主に受信側ドメインがサーバードメインと同じ場合に使用されます。 これらは通常、gmail.com、yahoo.comなどの無料のメールサービスで使用されます。
- SMTPリレーサーバー:これもサーバーですが、この用語は、送信元の電子メールドメインと宛先の電子メールドメインがSMTPサーバードメインと異なる場合に使用されます。 例としては、これらを提供するSendGridまたはSendInBlueがあります。これらのサーバーは、主にメールのルーターです。
偽のSMTPサーバー: –これらのサーバーは主に開発者によるテストに使用され、基本的にはキャッチオールサーバーであり、ユーザーは実際に電子メールを送信せずに受信者側で電子メールがどのように表示されるかを確認できます。 MailHogやMailCatcherなどのローカルアプリケーションをインストールするか、MailtrapやOurローカルツールなどの提供されているクラウドを使用できます。
SMTPはどのように機能しますか?
以下は、電子メールの送信プロセスがSMTPでどのように機能するかについての一般的なガイドです。
- たとえば[emailprotected]から[emailprotected]にメールを送信したいユーザーは、自分のメールクライアントを使用して件名と本文を含むメールの下書きを作成し、[送信]を押します。
- ユーザーが送信を押すと、電子メールクライアントは構成済みのSMTPサーバーに接続します。今のところ、smtp.source.comであると想定します。 クライアントとSMTPサーバーはハンドシェイクを実行し、承認が必要な場合、クライアントは同じものの資格情報を提供します。
- ハンドシェイク後、電子メールクライアントは受信者アドレスを送信します。この場合は[電子メールで保護]、件名、本文です。
- ユーザーが同じドメイン内の誰かに送信していた場合、サーバーはそれをローカルの受信者サーバーに内部的に転送するだけです。
- 次に、MXレコードのDNS要求を使用するSMTPサーバーは、SMTPサーバーが実行されている受信者のIPアドレスまたはドメインアドレスを見つけます。
- 次に、受信者のSMTPアドレスに接続し、電子メールの配信を試みました。
- 受信者のEメールサーバーは、転送されるEメールを処理できるかどうかを確認します。 そして、すべてが順調であれば、これを着信IMAPまたはPOP3サーバーに転送します。
共通のSMTPポートとアドレス
ほとんどの場合、SMTPアドレスは、接続しようとしているドメインの前にあるmailまたはsmtpのプレフィックスになります。 また、これらはDNSのメール交換(MX)レコードによって指定され、電子メールメッセージのルーティング方法を処理することになっているメールサーバーにクライアントを転送します。
SMTPサーバーのアドレスを見つけるには、digコマンドを使用できます
1 2 3 |
root @ mailtest : ~ # dig +short freesmtpservers.com MX 20 smtp . freesmtpservers . com . 10 smtp . freesmtpservers . com . |
次に、必要に応じてdigコマンドを使用してIPアドレスを見つけることができます
1 2 |
root @ mailtest : ~ # dig +short smtp.freesmtpservers.com 104.237.130.88 |
接続するポートはそれほど単純ではありません。サーバーとリレーには通常、接続できるさまざまなポートのセットがあり、それぞれが特定の要件を満たすために時間外になっています。
SMTPポート
ポート番号 | 説明 | 情報 |
---|---|---|
25 | 標準SMTPポート | 主にEメールリレーに使用する必要があります |
465 | 非推奨のSMTPポート | 安全なSMTP用であり、暗号化にSSLを使用しました。 使用を避けてください。 |
587 | 最新のセキュアSMTPポート | 最新の電子メールクライアントのほとんどはこれを使用し、TLS暗号化を使用します。 |
2525 | 代替の非標準SMTPポート | これは、587がブロックされた場合の代替として使用されます。 |
ほとんどの場合、必要に応じてポート587を使用します。
一般的なSMTPサーバー名
SMTPサーバーの一般的なアドレスはsmtpで始まります。 またはメール。 ドメイン名を使用すると、IPアドレスを持つものもあります。 以下に、いくつかの一般的なものとその詳細を示します–
サービス名 | SMTPサーバー | ポート |
---|---|---|
Googleのメール | smtp.gmail.com | 587 |
Outlook.com | smtp.live.com | 587 |
Office365.com | smtp.office365.com | 587 |
ヤフーメール | smtp.mail.yahoo.com | 465 |
Yahooメールプラス | plus.smtp.mail.yahoo.com | 465 |
Yahoo UK | smtp.mail.yahoo.co.uk | 465 |
Yahoo Deutschland | smtp.mail.yahoo.com | 465 |
Yahoo AU / NZ | smtp.mail.yahoo.com.au | 465 |
O2 | smtp.o2.ie | 25 |
O2.uk | smtp.o2.co.uk | 25 |
AOL.com | smtp.aol.com | 587 |
AT&T | smtp.att.yahoo.com | 465 |
NTL @ ntlworld.com | smtp.ntlworld.com | 465 |
BTコネクト | pop3.btconnect.com | 25 |
BT Openworld | mail.btopenworld.com | 25 |
BTインターネット | mail.btinternet.com | 25 |
オレンジ | smtp.orange.net | 25 |
Orange.uk | smtp.orange.co.uk | 25 |
ワナドゥーUK | smtp.wanadoo.co.uk | 25 |
ホットメール | smtp.live.com | 465 |
O2 Online Deutschland | mail.o2online.de | 25 |
T-Online Deutschland | securesmtp.t-online.de | 587 |
1&1(1and1) | smtp.1and1.com | 587 |
1&1ドイツ | smtp.1und1.de | 587 |
Comcast | smtp.comcast.net | 587 |
ベライゾン | 発信.verizon.net | 465 |
Verizon(Yahooがホスト) | 発信.yahoo.verizon.net | 587 |
Zoho Mail | smtp.zoho.com | 465 |
Mail.com | smtp.mail.com | 587 |
GMX.com | smtp.gmx.com | 465 |
[メール保護]USA.NETによる | smtp.postoffice.net | 465 |
バルクSMTPサーバープロバイダー設定
複数の電子メール、たとえば10000 Kの電子メールを送信する場合はどうなりますか?バルクSMTPリレーのようなものが必要になります。これらは、APIや、配信追跡、オープンレートなどの他の機能も提供します。プロトコルとしてのSMTPは少し遅いので、電子メールは非常に高速です。
数がそれほど多くない場合は、無料のSMTPサーバープロバイダーのリストを使用して選択できます。
大規模なユーザーベースにメールを送信したい場合、またはメールマーケティングの場合は、さまざまなプロバイダーをリストした価格を以下に示します。
ベンダー | 無料/月 | 1日あたりの制限 | 有料プラン | コメントコメント |
---|---|---|---|---|
SendInBlue | 9000 | 300 | 1万ドルで25ドルから100万ドルで499ドル | 最高の無料 |
TurboSMTP | 6000 | 200 | 50kの場合は14.95、200万の場合は979.95。 | 6000/月で12か月 |
アリババダイレクトメール | 6000 | 200 | 1000メールあたり.00029 | |
PepiPost | 3000 | 100 | 15万ドルで25ドルから200万ドルで445ドル | |
SendGrid | 3000 | 100 | 5万通のメールで14.95ドル、15万通で749ドル | |
SparPost | 3000 | 100 | 50Kで$20から1Mで$525 | |
Elastic Email | 3000 | 100 | アマゾンSESのような原価計算 | 低コストの有料オプション |
アマゾンSES | 62000 | 1000通のEメールの場合は.0001 | AWS EC2サーバーから送信された場合、最も安価で無料の1つ | |
Gmail | 15000 | 500 | Gsuiteはプレミアムオプションです | ドメインはgmail.comになり、アカウントの停止につながる可能性があります。 |
WordPressでSMTPサーバーを使用する
WordPressはインターネット上のサイトのほぼ40%に電力を供給し、デフォルトではPHP Mailを使用してトランザクションメールを送信します。トランザクションメールは、構成されていない場合はsendmailを使用します。配信が懸念される場合、これはヒットまたはミスになる可能性があるため、 SMTP設定またはSMTPAPIを使用できるWordPressプラグイン。
デフォルトでは、WordPressはPHPメールを使用してメールを送信します。正しく設定されていれば十分ですが、ほとんどの共有ホストでは、コンソールに直接アクセスして何が起こっているのかを確認できないため、ほとんどの場合、サードパーティのサービスを使用する方が簡単です。サーバー上に他のユーザーがいて(共通共有ホスティングの場合)、動作せずにIPがブラックリストに登録される可能性があるため、SPAMが原因でホストIPがブラックリストに登録されている可能性があります。 ブラックリストに登録されているということは、サーバーのIPが既知のスパマーのグローバルリストに含まれていることを意味します。これにより、メールの通過がさらに困難になります。ここでステータスを確認できます。
WordPressには、Wp Mail SMTPプラグインをお勧めします。設定、設定が簡単で、Gmailを含むさまざまなベンダーをサポートしています。また、送信されたすべてのメールをログに記録するオプションもあります。 ほとんどのユーザーにとって、無料プランで十分です。
WordPress内から簡単にインストールでき、WordPressのWebサイトからダウンロードすることもできます。 プレミアムプランがありますが、ほとんどのユーザーにとっては無料で十分です。
LinuxでセルフホストSMTPサーバーをセットアップする
クイックMTA比較、Linuxで作業するのでPostfixを選択します–
あなたがいる場合... | qmail | Exim | Sendmail | Postfix | ノート |
---|---|---|---|---|---|
経験の浅い | 0 | 3 | 1 | 3 | EximとPostfixには優れたドキュメントと明確な例があります |
セキュリティが心配 | 3 | 2 | 0 | 3 | Postfixは安全で最新です。 qmailは安全ですが、非常に古くて不機嫌です。 Eximはさまざまな基準に対して安全です(上記を参照)。 |
Sendmailmiltersに依存する | 0 | 1 | 3 | 2 | Postfixはmilterを実行できます。 同等のEximルーター/フィルタースクリプトを使用できます |
最小限の手間が欲しい | 0 | 3 | 0 | 3 | Sendmailには簡単なフロントエンドがいくつかありますが、深くなるほど悪化します。 PostfixとEximはより予測可能です。 |
リソースに制約があります | 3 | 2 | 1 | 2 | その他のコメントについては、以下の組み込みアプリケーションを参照してください |
Windowsの場合 | 0 | 2 | 3 | 0 | SendmailにはネイティブのWindowsポートがあります。 EximはCygwinディストリビューションにあります |
商業的支援が必要 | 1 | 3 | 3 | 3 | すべてのMTAに有能な会社があります。 qmailは本質的にサポートが難しいため、非常に古いです |
Postfixは、SMTPサーバーまたはクライアントとして機能して電子メールを送受信できるメール転送エージェント(MTA)です。 セットアップと構成は簡単で、私たち自身がほとんどのニーズに使用します。また、サードパーティの電子メールサービスを介して電子メールを転送するための仲介者として機能するようにセットアップすることもできます。 基本的な設定についてのみ説明し、最初のメールを送信します。
最も簡単なセットアップはpostfixのインストールで構成されており、準備は整っているはずです。
このような必要最低限の設定は技術的には機能しますが、メールがスパムに届く可能性があります。これに対応し、メールの配信可能性を高めるために、メールを確実に送信するために必要なDKIMやSPFなどの他の要件を追加する別のガイドがあります。終えた。 ただし、それでも、非常に正当な理由がない限り、独自の電子メールサーバーを実行することはお勧めしません。
このプロセスは、Ubuntu 20.04が新しくインストールされており、コマンドラインLinuxで作業できることを前提としています。そうでない場合は、既存のSMTPプロバイダーのいずれかを使用することをお勧めします。 Ubuntu 20.04サーバーにpostfixを設定し、それを使用して独自のダミーサービスに電子メールを送信し、動作するかどうかをテストします。
まず、aptパッケージマネージャーのupdatecacheコマンドを発行します
sudo apt update
次に、次のコマンドを使用してpostfixをインストールします–
sudo apt install postfix
インストールすると、一連のプロンプトが表示されます。次の選択を行ってください–
- メール設定の一般的なタイプ? :このために、インフラストラクチャのニーズに一致するインターネットサイトを選択します。
- システムメール名:これは、ユーザーが送信者ドメインを指定していない場合にメールを送信するために使用されるベースドメインです。 したがって、たとえばuser1から電子メールを送信し、ドメインが指定されていない場合、これは電子メールに後置されます。 したがって、example.comが指定されている場合、[emailprotected]からメールが送信されます。
これで基本構成が処理されます。 完全なセットアップについては、メールサーバーセットアップガイドに従ってください。 これでポート25が使用可能になります。コマンドのいずれかを使用して、ポートが開いているかどうかを確認できます–
1 2 3 4 5 |
sudo lsof - i - P - n | grep LISTEN sudo netstat - tulpn | grep LISTEN sudo ss - tulpn | grep LISTEN sudo lsof - i : 22 ## see a specific port such as 22 ## sudo nmap - sTU - O IP - address - Here |
私たちが探しているのはこのようなものです

master 2575 root 13u IPv4 30244 0t0 TCP *:25 (LISTEN)
master 2575 root 14u IPv6 30245 0t0 TCP *:25 (LISTEN)
セットアップを再構成する必要がある場合でも、コマンドを実行するだけです–
1 |
sudo dpkg - reconfigure postfix |
SMTPサーバーが稼働している必要があります。 次に、インターネット上の一部のユーザーに電子メールを送信するか、すべての電子メールをキャッチしてテストすることができます。
SMTPサーバーの使用
通常、電子メールクライアントは、ほとんどの人がSMTPサーバーとインターフェイスする最も一般的な方法ですが、telnetを使用して直接対話することもできます。 とてもかっこいいので、この方法から始めましょう。
Linuxでtelnetを使用してメールを送信する
次のコマンドを入力して、ローカルSMTPサーバーに接続します–
1 |
telnet localhost 25 |
このようなものが表示されます–
1 2 3 4 |
root @ mailtest : ~ # telnet localhost 25 Trying : : 1... Connected to localhost . Escape character is '^]' . |
接続できない場合は、postfixが実行されていることを確認し、ポート25が開いていることを確認してください。
次に、[メール保護](すべてのメールをキャッチ)というメールを送信しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
root @ mailtest : ~ # telnet localhost 25 Trying : : 1... Connected to localhost . Escape character is '^]' . 220 mailtest ESMTP Postfix ( Ubuntu ) ehlo localhost 250 - li292 - 146.members.linode.com 250 - PIPELINING 250 - SIZE 10240000 250 - VRFY 250 - ETRN 250 - STARTTLS 250 - ENHANCEDSTATUSCODES 250 - 8BITMIME 250 - DSN 250 - SMTPUTF8 250 CHUNKING mail from : bob @ example . com 250 2.1.0 Ok rcpt to : smtptest @ freesmtpservers . com 250 2.1.5 Ok data 354 End data with . Subject : Testing Email service This is a test email . . 250 2.0.0 Ok : queued as A6ADC402D4 quit 221 2.0.0 Bye Connection closed by foreign host . |
[メール保護]の受信トレイでメールが受信されているかどうかを確認してください。別の受信者を使用している場合は、受信トレイで確認できます。
Linuxコマンドラインからメールを送信する
Linuxでは、sendmailコマンドを使用してEメールをすばやく送信できます。
1 |
echo "Subject: hello" | sendmail - v smtptest @ freesmtpservers . com |
私の記事が気に入っていただければ幸いです。いくつかの点を見逃したり、どこかで間違っていたと感じた場合は、お知らせください。ここで更新します。