
電子メールクライアント、電子メールリーダー、メッセージユーザーエージェント(MUA)、またはメールユーザーエージェントとは、ユーザーの電子メールにアクセスして管理するために使用されるコンピュータプログラムです。
メッセージの管理、作成、受信機能を提供するウェブアプリケーションはウェブメールクライアントとして機能する可能性があり、また、主な役割または最も目立つ役割が電子メールクライアントとして機能することであるコンピュータのハードウェアまたはソフトウェアも、この用語を使用する可能性がある。
ほとんどのクライアントプログラムと同様に、電子メールクライアントはユーザーが実行しているときのみアクティブになります。一般的な仕組みとしては、電子メールユーザー(クライアント)が、リモートのメール転送エージェント (MTA)サーバーと、クライアントの電子メールの受信と保存に関する取り決めを行います。MTAは、適切なメール配信エージェント(MDA)を使用して、電子メールメッセージが到着するとクライアントのストレージに追加します。リモートのメールストレージは、ユーザーのメールボックスと呼ばれます。多くのUnixシステムでは、デフォルト設定として、メールサーバーはフォーマットされたメッセージをユーザーのホームディレクトリ内のmboxに保存します。もちろん、システムのユーザーは、メールボックスをホストしている同じコンピューターにログインしてメールクライアントを実行することもできます。その場合、サーバーは一般的な意味を除いて、実際にはリモートではありません。
メールは、ユーザーのメールクライアントがユーザーのコンピュータへのダウンロードを要求するか、またはリモートサーバー上のユーザーのメールボックスにアクセスできるまで、リモートサーバー上のユーザーのメールボックスに保存されます。メールクライアントは、複数のメールボックスに同時に接続し、あらかじめ設定された間隔などで自動的にメールのダウンロードを要求するように設定することも、ユーザーが手動で要求することもできます。
ユーザーのメールボックスには、専用の2つの方法でアクセスできます。Post Office Protocol(POP)では、ユーザーはメッセージを1つずつダウンロードでき、ローカルストレージに正常に保存された後にのみサーバーから削除されます。メッセージをサーバー上に残して、他のクライアントがアクセスできるようにすることも可能です。ただし、特定のメッセージを既読、返信済み、転送済みとしてマークする機能がないため、異なるマシンから同じメールにアクセスするユーザーにはPOPは不便です。
あるいは、インターネットメッセージアクセスプロトコル(IMAP)を使用すると、ユーザーはメッセージをサーバー上に保存し、適切なフラグを付けることができます。IMAPはフォルダとサブフォルダを提供し、これらは異なるアクセス権限を持つ複数のユーザー間で共有できます。通常、「送信済み」、「下書き」、「ゴミ箱」フォルダはデフォルトで作成されます。IMAPにはリアルタイム更新用のアイドル拡張機能があり、長時間接続が可能な場合はポーリングよりも高速な通知を提供します。詳細については、下記の「リモートメッセージ」セクションも参照してください。
JSONメタアプリケーションプロトコル(JMAP)は、HTTP上でJSON APIを使用して実装されており、IMAP/SMTPの代替として開発されました。
さらに、メールボックスのストレージには、サーバー上で実行されているプログラムから直接アクセスすることも、共有ディスク経由でアクセスすることもできます。直接アクセスは効率が良い場合もありますが、メールボックスのフォーマットに依存するため移植性は劣ります。一部のメールクライアント(一部のウェブメールアプリケーションを含む)で使用されています。
メールクライアントには通常、テキストを表示および編集するためのユーザーインターフェースが備わっています。一部のアプリケーションでは、プログラム外部のエディタの使用も可能です。
メールクライアントは、ヘッダーと本文についてはRFC 5322に従って、非テキストコンテンツと添付ファイルについてはMIMEに従ってフォーマットを実行します。ヘッダーには、宛先フィールド、 To、Cc (カーボンコピーの略)、Bcc(ブラインドカーボンコピー)と、発信者フィールドFrom(メッセージの作成者)、複数の作成者がいる場合はSender 、返信先を別のメールボックスに送る必要がある場合はReply-To )が含まれます。宛先フィールドでユーザーをより適切にサポートするために、多くのクライアントは1つ以上のアドレス帳を保持したり、 LDAPディレクトリサーバーに接続したりすることができます。発信者フィールドについては、クライアントによって異なるIDがサポートされる場合があります。
クライアント設定では、各ユーザーのIDとして、ユーザーの実名とメールアドレス、場合によってはLDAPサーバーのリストが必要になります。
ユーザーがメールを作成して送信しようとすると、メールクライアントがそのタスクを処理します。メールクライアントは通常、ユーザーのメールサーバーに接続するように自動的に設定されます。メールサーバーは通常、SMTPプロトコルの2つのバリエーションであるMSAまたはMTAのいずれかです。SMTPプロトコルを使用するメールクライアントは認証拡張機能を作成し、メールサーバーはそれを使用して送信者を認証します。この方法により、モジュール性とモバイルコンピューティングが容易になります。以前の方法では、メールサーバーがクライアントのIPアドレスを認識する必要がありました。たとえば、クライアントが同じマシン上にあり、内部アドレス127.0.0.1を使用している場合や、クライアントのIPアドレスがインターネットアクセスとメールサービスの両方を提供する同じインターネットサービスプロバイダによって管理されている場合などです。
クライアント設定では、優先する送信メールサーバーの名前またはIPアドレス、ポート番号、および認証用のユーザー名とパスワード(必要な場合)が必要です。メール送信には以下のポートが使用されます。
-ポート465 – RFC 8314に従って、接続開始時からTLSを使用したメール送信用に正式に指定されたポートです(暗黙的 TLS) 。暗号化が最初から強制されるため、暗号化を解除する可能性のあるダウングレード攻撃や中間者攻撃 (MITM) のリスクが排除されます。
-ポート587 – STARTTLSをサポートし、接続をオプションでTLSにアップグレードできるメール送信によく使用されます。ただし、中間者攻撃者がSTARTTLSコマンドを妨害した場合、接続は暗号化されないままになる可能性があり、ポート465での暗黙的なTLSよりも安全性が低くなります。
ポート25は、元々はMTA間のメッセージ中継を目的としていましたが、クライアントからのメッセージ送信には使用されず、スパム対策としてISPによってブロックされることがよくあります。
暗号化がない場合、はがきと同じように、メールのやり取りは、たまたま傍受する人にも容易に見えてしまいます。メールの暗号化は、メールセッション、メッセージ本文、またはその両方を暗号化することでプライバシーを保護します。暗号化がない場合、ネットワークにアクセスでき、適切なツールを持っている人なら誰でもメールを監視し、ログインパスワードを取得できてしまいます。懸念される例としては、政府による検閲や監視、インターネットカフェなどの無線ネットワーク利用者による監視などが挙げられます。
関連するすべての電子メールプロトコルには、ユーザー名とパスワードが盗聴されるのを防ぐためにセッション全体を暗号化するオプションがあります。これは、移動の多いユーザーやインターネットアクセスプロバイダが信頼できない場合に強く推奨されます。 [ 1 ]電子メールを送信する場合、ユーザーはクライアントから設定済みの送信メールサーバーまでの最初のホップでの暗号化のみを制御できます。それ以降のホップでは、送信サーバーの一般的な構成と受信サーバーの機能のみに応じて、暗号化ありまたは暗号化なしでメッセージが送信される可能性があります。
暗号化されたメールセッションでは、メッセージは元の形式(平文または暗号化された本文)で、ユーザーのローカルメールボックスと宛先サーバーの両方の場所に配信されます。後者のサーバーは、メールホスティングサービスプロバイダーによって運営されており、現在利用しているインターネットアクセスプロバイダーとは別の事業者である可能性があります。
例えばSSLでメール取得セッションを暗号化すると、セッションの認証とメッセージ転送の両方の部分を保護できます。[ 2 ] [ 3 ]
あるいは、ユーザーがメールサーバーへのSSHアクセス権を持っている場合は、SSHポートフォワーディングを使用して暗号化されたトンネルを作成し、そのトンネル経由でメールを取得できます。[ 4 ]
暗号鍵の管理には主に2つのモデルがあります。S /MIMEは、信頼できる認証局(CA)がユーザーの公開鍵に署名するモデルを採用しています。一方、 OpenPGPは、ユーザー同士が互いの公開鍵に署名できる、より柔軟な信頼のウェブメカニズムを採用しています。また、OpenPGPはメッセージのフォーマットにおいても柔軟性が高く、 MIME標準化以前と同様に、平文メッセージの暗号化と署名をサポートしています。
どちらの場合も、暗号化されるのはメッセージ本文のみです。送信者、受信者、そして多くの場合件名などのヘッダーフィールドは、平文のままです。
デスクトップコンピュータ上で動作するメールクライアントに加えて、リモートでホストされるものもある。リモートのUNIX環境の一部としてtelnet(つまりシェルアカウント)経由でアクセス可能なもの、あるいはWeb上でホストされるものがある。これらのアプローチにはどちらもいくつかの利点がある。Webブラウザやtelnetクライアントを使用して、ユーザーの通常の拠点から離れた場所でもメールを送受信できるため、ユーザーのデバイスに専用のメールクライアントをインストールする必要がなくなる。
一部のウェブサイトは電子メールサービスの提供に特化しており、多くのインターネットサービスプロバイダはインターネットサービスパッケージの一部としてウェブメールサービスを提供しています。ウェブメールの主な制限は、ユーザーの操作がウェブサイトのオペレーティングシステムに依存することと、電子メールメッセージをダウンロードしてオフラインでメッセージを作成または編集することが一般的にできないことです。ただし、ウェブメール機能の一部をOSに統合できるソフトウェアパッケージも存在します(たとえば、MAPIを介してサードパーティアプリケーションから直接メッセージを作成するなど)。
IMAPやMAPIと同様に、ウェブメールではメールメッセージがメールサーバー上に保持されます。次のセクションを参照してください。
POP3には、メッセージをサーバー上に残すオプションがあります。対照的に、IMAPとウェブメールはどちらも、動作方法としてメッセージをサーバー上に保持しますが、ユーザーは必要に応じてローカルコピーを作成できます。メッセージをサーバー上に保持することには、利点と欠点があります。[ 5 ]
メールを受信する際の一般的なプロトコルとしては、POP3とIMAP4が挙げられます。メールの送信は通常、SMTPプロトコルを使用して行われます。
ほとんどのメールクライアントがサポートしているもう一つの重要な規格はMIMEです。MIMEはバイナリファイルのメール添付ファイルを送信するために使用されます。添付ファイルとは、メール本文の一部ではなく、メールと一緒に送信されるファイルのことです。
ほとんどの電子メールクライアントは、メッセージの送信に使用されたソフトウェアを識別するために、 User-Agent [ 6 ]ヘッダーフィールドを使用します。このヘッダーフィールドはネットニュース用に定義されていますが、電子メール用には定義されておらず、そのため電子メールヘッダーでは非標準[ 7 ]です。
RFC 6409 「メールのメッセージ送信」では、メール送信エージェントの役割について詳しく説明しています。
RFC 5068「電子メール送信操作:アクセスと説明責任の要件」では、MTA、MSA、MDA、MUAの概念について概説しています。その中で、「アクセスプロバイダは、SUBMISSIONポート587を使用して外部インターネットにアクセスするユーザーをブロックしてはならない」こと、そして「MUAはメッセージ送信にSUBMISSIONポートを使用すべきである」ことが述べられています。
RFC 5965「電子メールフィードバックレポートのための拡張可能なフォーマット」は、「メール事業者が受信した電子メールに関するフィードバックを他の関係者に報告するために使用できる、拡張可能なフォーマットとMIMEタイプ」を提供します。
メールサーバーとクライアントは慣例として、次の表に示すTCP ポート番号を使用します。MSA、IMAP、POP3 の場合、この表には、クライアントがSRV レコードを照会して対応するサービスのホスト名とポート番号の両方を検出するために使用できるラベルも記載されています。[ 8 ]
ウェブメールは、暗号化セッションと平文セッションに別々のポートを使用するという、以前のHTTPの仕様に従っていますが、メールプロトコルはSTARTTLS技術を使用することで、既に確立されたTCP接続上で暗号化を開始できるようにしています。RFC 2595では、以前から使用されていたポート995と993の使用を推奨していませんでしたが、RFC 8314では、利用可能な場合は暗黙的なTLSの使用を推奨しています。
Microsoftのメールシステムは、 Microsoft Outlookなどのクライアントアプリケーションにおいて、独自のメッセージングアプリケーションプログラミングインターフェイス(MAPI)を使用して、 Microsoft Exchange電子メールサーバーにアクセスします。
この文書は、特定のセキュリティ実装に関する推奨事項を提供するものではありません。単に、安全でないネットワーク上でユーザー認証情報を平文で送信することは、攻撃者がこのトラフィックを傍受してアカウントデータを盗む可能性があるため、あらゆるシナリオで避けるべきであるという警告を提供するものです。このような場合、適切なセキュリティ技術を使用することが強く推奨されます。
APOP、標準のUSER/PASS認証をチャレンジレスポンス認証メカニズムに置き換えます。これにより、再利用可能なパスワードの漏洩の問題は解決されますが、他のユーザーによる不正アクセスを防ぐことはできません。盗聴者がユーザーのメールメッセージを取得中に読み取るのを防ぐ。リモート シェル アクセスとコマンド実行を提供するだけでなく、任意の TCP ポートを接続のもう一方の端に転送することもできます。これは、電子メール、ウェブ、またはプライベートに保つ必要があるその他のトラフィック (少なくともトンネルのもう一方の端まで) を保護するのに非常に便利です。sshは、ローカル ポートにバインドし、暗号化を実行し、暗号化されたデータをssh接続のリモート端に送信し、復号化して指定したリモート ホストとポートに送信することで、ローカル転送を実現します。-Lスイッチ (Local の略)を使用してsshトンネルを開始します。当然ながら、user をユーザー名に、mailhost をメール サーバーの名前または IP アドレスに置き換えてください。この例では特権ポート (110、POP ポート) にバインドするため、ラップトップで root 権限が必要になることに注意してください。また、ローカルで実行されている POP デーモンを無効にする必要があります ( /etc/inetd.confを参照)。そうしないと、邪魔になります。POPトラフィックをすべて暗号化するには、メールクライアントをlocalhostのポート110に接続するように設定してください。メールクライアントは、まるで直接接続しているかのようにmailhostと通信しますが、通信全体が暗号化されます。root@laptop:~# ssh -f -N -L110:mailhost:110 -l usermailhostこの情報の一部は、これまでX-Newsreader、X-Mailer、X-Posting-Agent、X-Http-User-Agentなどの非標準化ヘッダーフィールドで送信されていました。
News で使用するために RFC 1036 でのみ定義されているヘッダーが、メッセージが Usenet News から電子メールにゲートウェイされたか、電子メールと Usenet News の両方を同じクライアントでサポートする複合クライアントでメッセージが作成されたかのいずれかの理由で、メール メッセージに表示されることがあります。これらのヘッダーはインターネット電子メールでの使用が標準化されていないため、電子メール エージェントは注意して処理する必要があります。