Ubuntu19.10でメールシステムを展開する

記事ディレクトリ

1.メールシステムの概要##

1、 メールの誕生###

マサチューセッツ工科大学のレイ・トムリンソン博士は、ARPANETプロジェクトの科学研究プロジェクトに携わっていました。彼は、「手紙」と同様の送信サービスを設計し、手紙用の「レターボックス」を準備する必要があると感じました。相手が一時的にオフラインになっていても、データを受信でき、オンラインになってから処理することができます。

そのため、レイ・トムリンソン博士は1年近くかけて電子メール(「電子メール」)の設計を完了し、「1971」の秋に「SNDMSG」ソフトウェアを使用して人類史上初のコンピューターを他のコンピューターに送信しました。電子メール—電子メールシステムはインターネット上で生まれました!

インターネット上の他のユーザーに電子メールを送信するため、他のユーザーが電子メールを受信するために使用する名前は一意である必要があります。そうでない場合、電子メールが同じ名前の複数のユーザーに同時に送信されるか、全員がメールを受信できなくなります。アップ。

そのため、レイ・トムリンソン博士は、電子メールボックスの名前を標準化するために「**名@ computerhostname **」の形式を使用することを選択することにしました。 RayTomlinson博士は、人間の名前やコンピューターのホスト名にそのような@記号を含めるべきではないと感じたため、スペーサーとして @記号を選択する理由は、実際には非常に単純です。彼はこの記号を選択しました。

2、 一般的なメールプロトコル###


3、 専門用語の説明###

一般的なネットワークサービスプログラムは、情報を送信するときに電話をかけるようなもので、両方の当事者が同時にオンラインのままである必要があります。電子メールシステムでは、ユーザーは電子メールの送信後に配信作業が完了するのを待たずにオフラインにすることができます。

サーバー(MTA)がダウンしているか、相手が一時的に「オフライン」になっている場合、送信サーバー( MTA)は自動的にローカルに送信するコンテンツを一時的に保存し、相手のメールサーバーが回復するのを検出するまで待機します。 すぐに再配信します。

図に示すように、QQメールボックスからGoogleメールボックスにメールを送信する概略図です。

4、 メールシステムのワークフロー###

最も基本的な電子メールシステムは、送受信サービスを提供できる必要があります。そのためには、「SMTP」プロトコルに基づく「Postfix」サービスプログラムを使用して「送信サービス」機能を提供し、「POP3」プロトコルベースを使用する必要があります。 Dovecotサービスプログラムは ReceivingService機能を提供します。

このようにして、ユーザーはOutlook ExpressやFoxmailなどのクライアントサービスプログラムを使用して、通常どおりメールを送受信できます。電子メールシステムのワークフローを次の図に示します。

2、メールシステムをインストールします##

このメールサービスは、AliyunによってSMTPサービスが無効になっているため、AlibabaCloudなどのサーバーにはインストールできないことに注意してください。

関連する規定は次のとおりです。

3.1.3.5. アリババクラウドが提供する[クラウドサーバー](https://cloud.tencent.com/product/cvm?from=10680)を、仮想サーバー、ディスクスペースのレンタル、または違法なプロキシサーバー(プロキシ)またはメールサーバー(アリババクラウドクラウドプラットフォームセキュリティルールによる)として使用しないでください提出が許可された後、クラウドサーバーを使用してSMTPサービスに接続し、電子メールを送信することはできません。AlibabaCloudは、クラウドサーバーをSMTPサービスに使用することをデフォルトで禁止します。

このチュートリアルはUbuntu19.10システムに基づいており、下位互換性があります。CentOSユーザーもこのチュートリアルを参照でき、インストールコマンド apt yumに変更するだけです。

1、 Postfixの紹介###

Postfixは、IBMが資金提供する無料のオープンソースの電子メールサービスプログラムです。これは、「SMTPサーバー」とも呼ばれる最新のメール転送エージェント( MTA)であり、2つの機能を備えています。

2、 依存関係をインストールする###

メールシステムをインストールする手順は次のとおりです。

2.1、 ホスト名を設定します####

デフォルトでは、Postfixは他のMTAと通信するための一意の識別子として hostnameを使用します。hostnameには2つの形式があります。1文字と FQDN(完全修飾ドメイン名、フルネーム)です。

一般的なコンピューターは、一意の識別子として1文字の形式を使用します。たとえば、名前はlinux、debian、ubuntuなどです。

サーバーは通常、FQDNを一意の識別子として使用します。メールサーバーとして機能しているため、FQDNを使用します。 FQDNは、 ノード名ドメイン名の2つの部分で構成されています。

例: mail.ubuntuwsuo.com;

ここで、 mailはノード名、 ubuntuwsuoはドメイン名です。

FQDNは、メールのヘッダーに「バナー」として表示されます。一部のMTAは、FQDNのないサーバーから送信されたメールを拒否し、一部のMTAはDNSにアクセスして、メールサーバーのドメイン名が解決されているかどうかを確認します。

次のコマンドを使用して、 hostnameをFQDN形式で表示します。

hostname -f

私のは ubuntuです。

持っていない場合は、 hostnamectlコマンドを使用して作成します。

sudo hostnamectl set-hostname your-fqdn
//your-fqdnを必要な名前に置き換えます

通常の状況では、FQDNは次のとおりです。mail.yourdomain.comもちろん、Postfix構成ファイルの myhostnameを変更してFQDNを変更することもできます。

2.2、 DNS解決を設定する####

@レコードを追加して、既存のドメイン名に解決できます。

3、 Postfix ###をインストールします

最後に、最も簡単なリンクでもあるハンズオンリンクがあります。一緒にインストールしましょう。

sudo apt update
sudo apt install postfix -y

しかし、私はすでにそれをインストールしました。効果を示すために、アンインストールコマンドを実行します。将来アンインストールする場合は、同じコマンドを実行できます。

sudo apt remove postfix
sudo apt clean

アンインストール後、再度インストールしてください。

「インターネットサイト」を選択します。

次に、システムメール名のドメイン名、つまり@記号の後にドメイン名を入力します。たとえば、私のメールアドレスは wsuo @ ubuntu.netなので、システムのメール名として ubuntu.netと入力します。

ここでは、ドメイン名として「ubuntu.net」を入力することをお勧めします。他のドメイン名は傍受されやすく、予約済みドメイン名としてubuntu.comを使用できないためです。他のドメイン名を入力すると、手紙を送ることができません。通知しないことで私を責めないでください。インストールを再度削除して再構成することしかできません。

インストールされると、Postfixは自動的に起動し、 / etc / postfix / main.cfにファイルを生成します。これで、次のコマンドを使用してPostfixのバージョンを確認できます。

postconf mail_version

私のは mail_version = 3.4.5です。

次のコマンドを使用して、監視対象のポート情報を表示します。

sudo netstat -lnpt
//netstatがインストールされていない場合,コマンドを使用してインストール:sudo apt install net-tools

インストールが完了しました。

3つ目は、メールシステムを構成する##

1、 メール表示コマンド###

Postfixがインストールされた後、多くのバイナリファイルがsbinディレクトリに生成されます。これらは実行可能なコマンドです:

dpkg -L postfix | grep /usr/sbin/

2、 ファイアウォールを構成する###

Ubuntuはデフォルトでファイアウォールをオンにしません。ufwファイアウォールをオンにしている場合は、Postfixが他のSMTPから送信されたメールを受け入れることができるように、ポート25を開く必要があります。

//ファイアウォールのステータスを表示する
sudo ufw status

//ポート25を開く
sudo ufw allow 25/tcp

もちろん、ファイアウォールを直接オフにすることもできますが、これはお勧めしません。

sudo ufw disable

3、 接続を確認してください###

以下のポートの状況を確認してください。
最初にインストールコマンドを実行してnmapをインストールします。すでにインストールしている場合は、スキップできます。Nmapは主にポートスキャンを実行します。

sudo apt install nmap

Nmap( "Network Mapper")は、オープンソースのネットワーク検出およびセキュリティ監査ツールです。その設計目標は、大規模なネットワークを迅速にスキャンすることであり、もちろん、単一のホストをスキャンすることは問題ありません。 Nmapは、独自の方法で元のIPパケットを使用して、ネットワーク上にあるホスト、それらのホストが提供するサービス(アプリケーション名とバージョン)、それらのサービスが実行されるオペレーティングシステム(バージョン情報を含む)、および使用するパケットのタイプを検出します。フィルター/防火壁、および他の多くの機能。 Nmapは通常、セキュリティ監査に使用されますが、多くのシステム管理者やネットワーク管理者は、ネットワーク全体に関する情報の表示、サービスアップグレード計画の管理、ホストとサービスの動作の監視など、日常的なタスクの実行にも使用します。

次に、コマンドを実行して ipアドレスに変更します。

sudo nmap 192.168.0.104

ポート25が smtpサービスとして指定されていることがわかります。
次に、Tencentのメールサーバーに接続してみます。

telnet imap.qq.com 25

これにより、Postfixがメールを送信できるようになります。

4、 テストメールを送信する###

これで、コマンドラインを使用してメールを送信できます。

ユーザー名をwsuoとして追加すると、メールアドレスとして wsuo @ yourdomain.comを使用してメールを送信するか、 root @ yourdomain.comを使用できます。次のコマンドを使用してメールを送信できます。

echo "test email"| sendmail [email protected]

この簡単なコマンドでは、「テストメール」をメールの本文として使用して、Tencentメールボックスにメールを送信します。メールボックスでメールを受信するか、スパムで見つけることができます。送信アドレスを入力しなくても見つけることができます。インストール時に送信者アドレスがデフォルトで設定されているため、送信できます。

/ var / log / mail.logを開いて、送信情報を表示します。

Mar  808:36:11 ubuntu postfix/qmgr[18174]: E363B66E82:from=<[email protected]>, size=242, nrcpt=1(queue active)
Mar  808:36:14 ubuntu postfix/smtp[19413]: E363B66E82: to=<[email protected]>, relay=mx3.qq.com[183.232.93.177]:25, delay=2.2, delays=0.01/0.01/0.28/1.9, dsn=2.0.0, status=sent(250 Ok: queued as)
Mar  808:36:14 ubuntu postfix/qmgr[18174]: E363B66E82: removed

受信者としてのPostfixが電子メールをローカルに保存するように、電子メールへの返信を試みることができます。次のコマンドを入力して、受信者の場所を表示します。

postconf mail_spool_directory

/ var / mail /ディレクトリ内。

構成ファイルを開いて、 hostnameを変更できます。

/ etc / postfix / main.cfを開き、 myhostnameのキーワードを見つけて、名前を変更します。

再起動:

sudo service postfix restart

届かない場合は、次の解決策を試してください:###

ログファイルディレクトリを開いて、送信された情報を表示します。通常、ここにエラーメッセージが表示されます。

cat /var/log/mail.log

サーバーにIPアドレスのみがあり、対応するドメイン名がない場合、私のような電子メールを受信しない可能性があります。ここで送信されるメールのデフォルトの送信アドレスは次のとおりです。server@にログインするためのユーザー名@私のようにサーバーの名前は wsuo @ ubuntuです。ほとんどの受信者のメールサーバーは、送信メールアドレスの有効性を判断します。通常のドメイン名のサフィックス( xxx.com xxx.netなど)と一致しない場合は、次のように判断されます。スパムと破棄。

したがって、次の手順に進み、送信アドレスを構成します。

5、 送信者アドレスを変更する###

次のコマンドを順番に実行します。

//最初に構成ファイルを開きます
sudo vim /etc/postfix/main.cf
//最後の行に追加
smtp_generic_maps = hash:/etc/postfix/generic
//新しいファイルを開いて
sudo vim /etc/postfix/generic
//フォーマットは
ユーザー名@あなたのサーバー名相手に見せたいメールアドレス
//たとえば、私のコンピュータは前面にあります,後者に変えて入りたい:
wsuo@ubuntu   [email protected]

再起動して再送信します。

sudo service postfix restart
echo "test email"| sendmail [email protected]

それでも受信できない場合は、前回のインストール時に設定したアドレスを変更できます

sudo vim / etc / postfix / main.cfを開き、インストール時に設定したメールドメイン名を含む mydestinationを見つけます。これで有効なアドレスに変更できます。

mydestination = $myhostname, ubuntu.net, ubuntu, localhost.localdomain, localhost

参照:
1、 「Linuxはそれを学ぶべきだ」
2、 Build Your Own Email Server on Ubuntu: Basic Postfix Setup

Recommended Posts

Ubuntu19.10でメールシステムを展開する
UbuntuシステムにImageMagickをインストールする問題を解決するプロセス
Ubuntuファイルシステムの概要
UbuntuにGerritをインストールしてデプロイする
UbuntuシステムでLVMのルートディレクトリを拡張する方法
Windowsシステムの下にlinux(ubuntu)デュアルシステムをインストールします
ubuntuでC ++コンパイル環境を構築する
Ubuntuシステムにユーティリティソフトウェアコレクションをインストールする
Ubuntuの下のdockerを介してspringbootプロジェクトをデプロイします
Ubuntuシステムのインストール
Ubuntuの下に古いバージョンのseuratをインストールします
Ubuntu16.04での.debのインストールの失敗に対する解決策
win10でubuntuシステムを開く方法
Ubuntuでnode.jsプロジェクトをherokuに公開します
Ubuntu18.04の下のディレクトリにディスクをマウントします
クロムはubuntu18.04でシステム設定として設定されています
Ubuntuにapache + PHPをインストールします
Ubuntuにnode.jsをインストールします
CentOS7でGitBookを展開する
stacerは個人的に最高のubuntuシステム管理ソフトウェアを考えています
ubuntu16.04はGPU環境を展開します
Ubuntu16.04にpython3.6をインストールします
ubuntu14.10の下にThriftをインストールします
UbuntuにOpenJDK10をインストールします
Ubuntu14.04にCaffeをインストールします
UbuntuでのPythonMySQLd
ubuntuの下で働き始める
Ubuntuシステムでの静的DNS構成の詳細な説明
[python] ubuntuの下のpython2とpython3
ubuntuでiptablesを使用する
Ubuntuオペレーティングシステムのデフォルトのルートパスワードを変更します
2018-09-11Ubuntuにarduinoをインストールします
LinuxシステムにおけるCentOSとUbuntuの違い
UbuntuでのLNMPのインストール
Ubuntuでのネットワーク構成
win10(Uディスクなし)にubuntuデュアルシステムをインストールします
CentOSの下にJDK + Tomcat8をデプロイします
ROS Ubuntu 18.04 [2]にROSをインストールします。
CentOS7でGraylogオープンソースログ管理システムを展開する
UbuntuにMySQLをインストールする
UbuntuにYarm-PM2をインストールします
Ubuntuデュアルシステムのインストール
ubuntuの下のLinux環境で発生した問題を解決します
について話す| Win10でLinuxシステムUbuntuをインストールして使用する
sshを介してwin10でubuntuシステムを制御する方法
UbuntuでXFSファイルシステム用のLVMを作成する方法
CentOS7の下にオープンソースの継続的統合ツールJenkinsをデプロイします
ubuntuデュアルシステムが起動したときのフリーズの解決策を説明する
Ubuntu 14.04でのDjango&MySQL環境の展開
Ubuntuは最新のPython3をインストールします。
ubuntuでUnmentの依存関係を解決する
UbuntuでSSHサービスを開く
ubuntuの下で崇高なtexを使用する
CentOS 7.2デプロイメールサーバー(Postfix)
Jmeter(18)_Ubuntuはjmeterとantを展開します
Ubuntu18.04でショートカットキーを変更する
ubuntuはrarファイルを解凍します
ubuntu1804は最新のSuricataを構築します
ubuntuでのmediawikiの使用
UbuntuXfceデスクトップシステムの設定
Ubuntu16.04にサーバー側のShadowsocksをインストールします