よくある質問・用語集

  • もっと調べる
  • どうやって使う?

メールシステムとは

メールシステムとは、メールの送受信、メールの閲覧、メールの管理など、メールに関する様々な機能を提供するサーバシステムの総称である。近年、メールはビジネスで広く使われるようになっている。チャットなど、メール以外のコミュニケーションのツールも増加しているが、依然としてメールは広く使われている。なぜならメールは単なる情報の受け渡しだけでなく、様々な用途で使われているからである。そのため、メールシステムには非常に幅広い機能が要求されている。

メールシステムとオープンソースソフトウェア

最近では、GmailやOffice 365など、インターネット上で様々なASP型のメールシステムが サービス提供されている。しかし、こうしたサービスは有料で、月額の料金性になっている場合が多い。人数で課金される仕組みのため、利用者が多い大企業や学校のメールシステムではかなり高いコストが掛かる。また、個人情報を頻繁に扱っていたり、機密情報を扱うことの多い企業など、セキュリティを重視する企業では、ASP型のサービスを選ぶことが難しい場合がある。そのため、自社でメールシステムを構築する企業も多い。

オンプレミス環境やプライベートクラウド環境に自社専用のメールシステムを構築する場合には、無料で入手することが可能なオープンソースソフトウェアを活用すると、コストを抑える効果が高い。しかも、目的に合わせて柔軟に機能を追加することができるため、自社にあった最適なメールシステムにすることができる。また、オープンソースソフトウェアに搭載されているAPIを使い外部のソフトウェアと連携したり、ソフトウェアそのものをカスタマイズすることで、メールシステムに独自の機能を作り出すことができる。

ここでは、メールシステムの仕組み、必要とされる機能やセキュリティのポイントを詳細に説明する。また、オンプレミス環境やプライベートクラウド環境にメールシステムを構築する場合に使えるオープンソースソフトウェアを紹介する。なお、オープンソースソフトウェアの選定や評価の際に役立つように、各オープンソースソフトウェアの参考となる情報へのリンクもそれぞれ記載する。

メール配信の仕組み

次の図は、最もシンプルなメール配信の仕組みを表したものである。

メール配信の仕組み

これは、PCからuser001@example.com宛てにメールを配信する場合の例である。メールは、以下のようなステップで配信される。

①PCからメールサーバAに、SMTPというプロトコルを使ってメールを送信する
②メールサーバAにメールが配信される
③メールサーバAは、宛先のドメインexample.comを管理するメールサーバをDNSキャッシュサーバに問い合わせる
④DNSキャッシュサーバが、example.comを管理するメールサーバを調査して、メールサーバAに回答する
⑤メールサーバAは、4の回答を元に、メールサーバBにSMTPでメールを配信する
⑥メールサーバBに、メールが配信される
⑦メールサーバBは、宛先のアドレス「user001」のメールボックスにメールを保管する
⑧ユーザは、PCメールサーバBにアクセスして、メールを取り出す
⑨ユーザは、メールソフトウェアやWebメールでメールを読む

この時、メールサーバA、メールサーバBのようなメールを配信する機能を持ったメールサーバをMTA(Mail Transfer Agent)と呼ぶ。またメールサーバBでは、配信されたメールをメールボックスに保管する処理を行っているが、このような機能を担うサービスをMDA(Mail Delivery Agent)と呼ぶ。そして、⑨のようにメールを読むためのソフトウェアをMUA(Mail User Agent)と呼ぶ。

MTA間のメールの配信では、SMTP(Simple Mail Transfer Protocol)が使われる。また、MUAがメールを取り出す時には、POP3(Post Office Protocol version 3)やIMAP4(Internet Message Access Protocol version 4)などが使われる。MUAとしては、MicrosoftのOutlookやオープンソースのThunderbirdが使われる。また、MTAとしては、SendmailやPostfixなどが使われることが多い。Sendmailは初期のインターネットから使われている歴史の長いOSSだが、最近はより設定が簡単で高性能なPostfixの人気が高い。POP3やIMAP4のサーバとしては、DovecotやCyrus-IMAPなどのソフトウェアが使われている。

メールシステムに求められる機能

最も基本的なメールシステムは、上記のようにMTA、MDA、MUAで構成される。また、MTAはDNSキャッシュサーバと連携してメールの送受信を行なう。ここでは、このメールシステムに求められる機能について解説する。

メールの閲覧と管理

メールシステムの利用者が、自分宛に配信されたメールを閲覧したり管理するための機能である。メールシステムの中でも主にMUAがこの機能を担う。最近では、メールはテキストだけでなく、HTMLなどのマークアップ言語で作成されることも多い。そのため、HTMLを解析して表示する機能が必要になる。メールを返信したり転送したりした記録を元に、スレッドとして表示する機能も一般的である。メールを時系列や送信元、宛先などで並べ替える機能もよく使われている。

最近は、クラウドサービスの普及もあり、MUAとしてWebメールが使われることが多くなってきた。メールソフトウェアがインストールされていなくてもWebブラウザだけでメールを読むことができるため、環境を問わずに利用できるという特徴がある。また、Webメールでは、PCやスマホにメールのデータをダウンロードすることなくメールを読むことができるというセキュリティ上のメリットもある。オープンソースソフトウェアのWebメールシステムとしては、Roundcubeが知られている。

メールの整理

受け取ったメールを管理するための機能である。ほとんどのMUAは、メールをフォルダに分けて管理する機能を持っている。また、メールに優先順位などに併せてタグを付けたり、星マークを付けたりする機能も、よく使われている。前述したRoundcubeでも、これらの機能を利用することができる。

メールの検索

受け取ったメールを検索する機能である。POP3を使っている場合には、MUAで検索機能を実現する。IMAP4の場合にはメールシステム側で検索を行う。そのため、大量のメールが保管されている場合には、検索結果が表示されるまでにかなり長い時間が掛かる可能性があり、メール検索の速度を高速化する仕組みが必要である。もし、高速な検索が必要な場合には、全文検索エンジンと連携するなどの仕組みを導入する必要がある。オープンソースの全文検索エンジンとしては、ElasticsearchやApache Solrなどが公開されている。

メールの転送

受け取ったメールを転送する機能である。一般的には、MUAでメールを読んだユーザが手動でメールを転送する。自動転送機能を持っているメールシステムには、メールが届いた時に、自動的に別の人にメールを転送したり、プログラムにメールを転送して何らかの処理を自動的に実行させる仕組みがある。

フィルタリング

受け取ったメールを選択し、アクションを行なう機能である。MUAの設定で受信したメールをフィルタリングする場合と、メールシステムとして配信の途中でフィルタリングを行う場合がある。最近では、SPAMメールやウィルスメールなどが増加しているため、メールシステム側で不要なメールを配信せずに自動的に廃棄する仕組みを持っている場合も少くない。

メールのフィルタリングには、Sieveと呼ばれるフィルタリング言語が使われている。Sieveではユーザが記述した条件に従ってメールシステムにメールの振り分けを指示することができる。IMAP4サーバのdovecotやRoundcubeなどでSieveを利用することができる。

メール配信システム

たくさんの人に一斉にメールを送る機能を実現するシステムを、メール配信システムと呼ぶ。いわゆるメルマガのように、メールを大量に配信する仕組みである。最近では、PCだけではなくスマートフォンなどの携帯端末でもメールを読むことができるため、メールマガジンや顧客に向けたセミナー案内などのマーケティング用にメール配信を行なう場合が多い。そのため、様々なデバイスに向けてメールを一斉配信する機能も重要視されている。

メール配信システムのソフトウェアとしては、phpList、MagLoなどのオープンソースソフトウェアが公開されている。

なお、最近のメール配信システムには、単に一斉にメールを配信するだけではなく、様々な付加的な機能が備わっている。ここでは、メール配信システムの付加的な機能について解説する。

配信先ユーザの管理

メール配信システムとして、配信先のユーザを管理する仕組みが必要である。次の2つのタイプがある。

  • 配信先のユーザをCSVなどで一括して取り込む仕組みをもつタイプ
  • 配信先のユーザを登録し管理するための仕組みをもつタイプ

高機能なメール配信システムでは、顧客管理(CRM)と連携する仕組みを持っている場合もある。そのようなメール配信システムでは、顧客セグメントや契約の内容に従って配信先を抽出することで、配信先に合わせた情報を届けることができる。

HTMLメールの作成

単なるテキストのメールではなく、画像や文字の強調などを行うことができるHTML形式のメールでメール配信を行なうことが多くなっている。よりビジュアルで分かり表現にすることができる。そのため、HTMLメールの作成機能(HTMLエディタ)を装備しているメール配信システムが多い。

配信の予約

メール配信システムに、事前に配信を予約しておく仕組みである。早朝、昼食前、帰宅時間など、読者がメールを読む可能性が高い時間の少し前にメールを配信することで、メールを読んでもらえる確率が高くなる。その時間を狙ってメールを配信するためには、配信時間の予約ができることが望ましい。

宛名等の情報の埋め込み

メールの本文をテンプレートとして登録し、配信先の名前や本文の内容などを自動的に置き換える仕組みを持つものが多い。自分の名前が記されたメールを受け取れば、メールを読む可能性が高くなるため、マーケティング効果が高くなる。また、読者によって、紹介する記事や商品を変えることでより個別の対応ができ、効率的に営業を行うことができる。

マーケティングの効果測定

配信したメールがどのくらいの人に読んでもらえたか(開封率)、メールの本文をクリックしてくれたかなどのコンバージョンを測定する機能を持っているメール配信システムもある。また、より具体的にお客様の反応を把握するため、アンケート・フォームの機能を用意している場合もある。

配信後のエラーメールの処理

配信先のユーザを登録して管理している場合には、メールの配送エラーを自動的に検知する仕組みがあると便利である。エラーが発生する配信先へのメール配信を自動的に停止してくれるため、運用の負荷を大きく下げることができる。この機能が無い場合には、エラーになった配信先を手動でリストから取り除く手間がかかる。

メールデータの保全

ビジネスではメールの重要度は、非常に高くなっている。そのため、ディスク障害やメールシステムの障害で、受け取ったメールが失われてしまうのは大きなリスクである。リスクを避けるため、サーバやネットワークを二重化したり、RAIDなどを使ってメールデータを安全に保管したりする仕組みが必要である。

メールのアーカイブ

メールデータの保全とは別に、メールのアーカイブを行なう仕組みもよく使われている。メールアーカイブは、データの保全ではなく、メール内容を監査したり記録したりするために使わる。ユーザは読み終わったメールを削除してしまう可能性もあるが、メールアーカイブシステムではユーザの操作とは関係なく、送受信したメールデータを一定期間保管する。メールアーカイブは、メールシステムではメールの配信経路上に配置される。

デージーネットでは、MTAと連携してメールアーカイブを行なうことのできるソフトウェアMessasyをオープンソースとして公開している。

メーリングリスト

メーリングリストは、1つの宛先にきたメールを、あらかじめ設定した複数のユーザに配信する仕組みである。高機能なメーリングリストのシステムでは、メールに通番を付けて配信したり、メーリングリストの名前を件名に記載して配信する機能を持ったものもある。また、メーリングリストのメールを保管し、閲覧、検索などができるようにしたものもある。日本国内では、古くからメーリングリストが使われてきたが、最近のクラウドサービスでは、メーリングリストの仕組みを持っていないことも多い。そのような場合には、メーリングリストのサーバを別に構築する必要がある。

メーリングリストのソフトウェアとしては、mailman、Sympa、ezmlmなどのオープンソースソフトウェアが公開されている。

メールの承認

メールの承認は、企業の業務などでメールを送信するときに、管理者がメールの内容を確認し承認を行なうワークフローをメールシステム上で実現する機能である。上司承認機能とも呼ぶ。セキュリティに非常に気を使っている組織で使われることが多い。この機能を活用して、自分自身で承認を行うことでメールの誤送信を防ぐ機能として利用したり、新入社員のメールマナーの研修などでも利用したりすることもできる。

メールシステムに求められるセキュリティ対策

メールシステムでは、利用者が安心して利用できるように様々なセキュリティ対策が求められる。ここでは、メールシステムを構築する時に配慮すべき、セキュリティの要件について解説する。

通信経路の暗号化

メールシステムで行われるメール配信の仕組みでは、以前は暗号化せずにデータのやり取りを行ってきた。しかし、最近になってメールの盗み見などが問題となり、メール配信で利用する通信は暗号化することが当たり前となってきている。メールの通信経路の暗号化では、Webサーバなどで使われる暗号化技術と同じTLS(Transport Layer Security)が使われる。また、暗号化には電子証明書が必要である。電子証明書によって、メールサーバが本物であることを証明し、偽物のメールサーバにメールが配信されないようにする。

認証

関係者以外の人が、無制限にメールサーバを利用できるような状況だと、メールサーバが迷惑メールやウィルスの配信元に使われてしまう可能性がある。このようなことがないように、メールサーバには利用者の認証を行う仕組みが必要である。以前は、メールの受信のときだけに認証を行っていたが、最近ではメールシステムの悪用を避けるため、メールの送信時にも認証を行なう。メールの受信時の認証はPOPサーバやIMAPサーバで行い、メール送信時の認証はMTAで行う。送信時のメール認証では、SMTP AUTHという仕組みが使われる。メールの認証時には、ユーザ名とパスワードが交換されるため、メールの通信経路の暗号化を行う仕組みも同時に構築する必要がある。

送信者認証

送信者認証は、メールの送信者が正しい送信方法でメールを送っていることを検査するための仕組みである。例えば、example.comのメールを送信できるサーバは、mail.example.comというホストだけであるとか、192.168.0.0/16のネットワークからしか送られないといった情報を元に、メールの送信元が正しいメールサーバであるかをチェックする。SPF(Sender Policy Framework)は、もっともよく利用されている送信者認証の仕組みである。SPFでは、そのドメイン名を送信元としてメールを送ってもよいサーバのIPアドレス等をDNSのレコードとして記述する。メール受信者は、DNSを調べることで、メール送信元が許可された送信元かどうかをチェックすることができる。

改竄検知

メールが通信経路上で改竄されていないかをチェックする機能を改竄検知機能と呼ぶ。メールを配信する時に送信元が電子署名を行い、受信者がそれを検証することで、送信者のなりすましやメールの改竄を防ぐことのできるDKIM(DomainKeys Indentified Mail)という仕組みが使われている。DKIMは、改竄検知だけでなく送信者認証の機能も持っているが、メールの転送時などに電子署名が上手く検証できないという課題もある。最近では、SPFとDKIMを組み合わせた仕組みであるDMARC(Domain-based Message Authenticating and Conformance)の導入が進んでいる。

DMARCを実現するソフトウエアとしては、RspamdやOpenDKIMなどのオープンソースソフトウェアが使われている。

ウィルス対策

メールの添付ファイルを介してウィルスが広がるのを防ぐため、メールを配信する時にウィルスチェックを行うことが推奨されている。メールに対するウィルス対策は、メールのウィルス対策に特化したソフトウェアがあり、それを利用するのが一般的である。それ以外にもアプライアンスサーバを利用したり、メールのウィルス対策を行なうSaaSサービスを利用することもできる。ウィルスチェックのソフトウェアでは、通常はユーザ数に応じた費用が必要で、価格も高い。そのため、メールシステムに掛かる費用の中でも非常に大きなウェイトを占める。オープンソースソフトウェアのウィルスチェックソフトウェアとしてClamAVが公開されているが、ウィルスパターンの更新がやや遅いというデメリットがある。そのため、デージーネットでは製品を使うことをお勧めしている。

スパム/迷惑メール対策

メールシステムでは、ウィルス対策とともに、迷惑メールの対策を行なう場合が多い。迷惑メールの判定では、送信者のIPアドレスを検査してSPAM送信元リスト(RBL)と付き合わせを行う方法、送信者認証を使う方法、メールの特徴からSPAMらしさを判定する方法などが、組み合わせて利用されている。最近の標的型メール攻撃などでは、手口が巧妙化して、メールの本文からSPAMと判定することが難しくなっている。そのため、SPAM対策ソフトウェアを導入しても、完全な対策を行うことはできないため注意する必要がある。

添付ファイルの保護

メールで扱われる添付ファイルは、とても便利な反面、情報漏洩の原因になることもある。そのため、添付ファイルの利用にはメールシステム側で制限をかけたり、保護をかけたりすることが多い。例えば、メールサイズや送信できる添付ファイルの種類などで制限を行う場合もある。また、メールシステム側で添付ファイルが使えないようにしたりすることもできる。

日本では、添付ファイルをZIP暗号化して送信し、その後にパスワードをメールで送信するという方法が使われることが多い。これは、PPAP(Password付きzip+Password+暗号化+プロトコル)などと呼ばれている。ユーザが、自分でZIP暗号化して添付ファイルを送信すると、メールシステム側でウィルスチェックを行えないため、ウィルス感染のリスクが高まる。そのため、PPAPの利用はあまり好ましくないとされている。

PPAPの手順を簡易化するため、メールシステムが添付ファイルを受け取った時に、自動的にZIP暗号化を行なう添付ファイル暗号化システムも使われている。添付ファイル暗号化のソフトウェアとしては、デージーネットが開発したSaMMAがオープンソースソフトウェアとして公開されている。

なお、メールシステム側で添付ファイル暗号化を行うと、ウィルスチェック後にメールが送信されるため、少なくとも送信メールシステム側ではウィルスチェックを行えるというメリットがある。ただし、受信側ではウィルスチェックを行うことはできないため、完全ではない。

最近では、添付ファイルの利用を禁止し、オンラインストレージを使ってファイルを交換する方法が使われるようになっている。SaMMAには、添付ファイルを削除する機能も実装されている。

メール無害化

メール無害化は、メールに関するリスクをメールシステム側で取り除く仕組みである。次のような手法が使われる。

     
  • 拡張子がEXEのファイルを削除する
  •  
  • WordやExcelからマクロを取り除く
  •  
  • ファイルをPDFに変換する
  •  
  • HTMLメールをテキスト形式に変換する
  •  
  • メール本文に含まれたURLを全角文字にするなど、簡単にクリックできないようにする

メール無害化は、自治体や官公庁などのメールシステムでよく利用されている技術である。メール無害化のソフトウェアとしては、様々な製品が販売されている。メール無害化を行うソフトウェアとしては、SaMMAが公開されている。

メールサーバの周辺サービス

メールサーバは、周囲のサービスと連携して動作する。ここでは、メールサーバと一緒によく使われる周辺のサーバについて紹介する。

DNSサーバ

メールの配信はDNSの情報を使って行われる。また、SPFなどの送信者認証では、DNS上に設定された送信者情報を使用する。そのため、メールとDNSは密接な継がりがあり、メールのセキュリティを考慮する場合には、DNSについても注意する必要がある。例えば、キャッシュポイズニング攻撃によりDNSの情報を不正に書き換えられると、メールシステムが騙されて別のメールサーバにメールを送ってしまう可能性がある。すると、知らないうちにメールが盗聴されているという被害が発生するかもしれない。そのため、メールシステムの安全性を保つためには、DNSSECなどDNSの情報を安全に保つ仕組みを併用する必要がある。

DNSサーバのソフトウェアとしては、BIND、PowerDNS、unboundなどがオープンソースソフトウェアとして公開されている。

LDAPサーバ

ユーザ数の多いメールサーバでは、メールのアカウント情報を管理する仕組みとしてLDAPサーバを使うのが一般的である。LDAPサーバでは、メールアドレス、ID、パスワード、メールスプールの利用限度などの情報を管理することができる。ActiveDirectoryもLDAPサーバの一種で、Windowsのログイン情報とメールシステムで利用する管理情報を一括管理するのに使われることがある。また、オープンソースのLDAPサーバとしては、OpenLDAPや389 Directory Serverなどが公開されている。OpenLDAPはISPなどでも利用されてきたLDAPサーバで、オープンソースソフトウェアとして長い実績がある。一方で、389 Directory Serverは、RedHat社が提供している製品のオープンソースソフトウェア化したもので、OpenLDAPと比較してより高速に動作すると言われている。

ユーザ管理用のソフトウェア

LDAPやデータベースでユーザを管理する場合には、ユーザの登録や削除を手動で行おうとすると、複雑な手順を踏む必要があり、操作性に難がある。そのため、ユーザ管理用のソフトウェアを利用するのが一般的である。

PostLDAPadminは、デージーネットが開発したオープンソースのメール管理用のソフトウェアである。Web画面から、PostfixとLDAPを連携してユーザを管理することができる。

オンラインストレージ

PPAPによる添付ファイルの交換が問題視される中、注目されているのがオンラインストレージである。ファイルをオンラインストレージ上に配置し、共有URLを発行し、それをメールで送ることで添付ファイルの代わりにすることができる。共有URLの利用にパスワードによる制限を掛けることができるオンラインストレージもある。最近はメールとオンラインストレージを併用することが多くなっている。

オンラインストレージとしては、DropboxやGoogle Driveなどのクラウドサービスを利用することができる。クラウドサービスの利用にセキュリティ面で不安がある場合には、NextcloudやownCloudなどのオープンソースソフトウェアを使って専用のサーバを構築することもできる。

ログサーバ

メールがビジネス上の重要なツールになっているため、メールが遅延する、メールが送れない、メールが届かなかいといったトラブルがあると、管理者は原因を特定し、対策を行わなければならない。このような場合には、管理者はメールシステムのログを参考に原因の調査を行う。しかし、メールシステムは様々なソフトウェアで構成されている。そのため、多数のログをみる必要がある。この一連の作業には時間がかかり、問題の発見に苦労することも少なくない。

このような状況を改善するために使われるのが、ログサーバである。ログサーバは、ログを集中的に管理し、高速に検索を行う仕組みを提供する。例えば、対象のメールアドレス、利用者のID、クライアントのIPアドレスなどを検索すると、関連するあらゆるログを検索して、一度に結果を表示してくれるため、とても効率が良い。

オープンソースのログサーバとしては、SylasやGraylogが公開されている。これらのOSSでは、全文検索エンジンとしてElasticSearchを採用している。Graylogでは、メールを解析し、表やグラフなどで表示したり、画像やレポートを作成することも可能である。

デージーネットの取り組み

デージーネットは、創業以来20年以上に渡って、無料のオープンソースソフトウェアを使ってISPやインターネットサービス事業者などの大規模なメールシステムを構築してきた。そのため、メールサーバやメール配信に関連する技術については、豊富な実績がある。

【カテゴリ】:メール関連技術  インターネット  

  • もっと調べる
  • どうやって使う?

【Webセミナー】コンテナ技術基礎と導入のメリット(Docker/Kubernetes)

日程: 8月26日(金)Webセミナー「BigBlueButton」を使用します。
内容: IoTプラットフォームや機械学習基盤として注目されている「コンテナ技術」について基礎から解説します。
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

メールシステムに関連するページ(事例など)

メールシステムとは先頭へ