【メール環境】Exchange Server/Outlookとは?【概念理解】

今回はメール環境(例としてMicrosoft製品群)について、自分の備忘録もかねてざっくり説明記事です。IT業界の人でもメーラーとかメールサーバはよく分からんという方も多いと思います。エンドユーザへの提案に同行して、「メールサーバは何をご利用されていますか？」と聞くと「Outlookです！」と回答されて説明に困るというのも日常茶飯事です...新人IT担当向けにメールサービスの概要というか概念的なものの理解の一助になればと思います。

# 前提条件＋免責事項
 - 当方はMicrosoft社とは関係ありませんので、技術的に間違っている可能性もありますので自己責任でお願いします。
 - 本記事はExchange Server/outlookの設定に関するものではなく、メール環境に関する概念説明の記事です。

# 「メーラー」と「メールサーバ」について
![スライド1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/6368c312-d3f0-1577-122a-83ea61c38a93.png)
一般的にメーラーとはOutlookを含めたクライアントソフトのことを指します。PCにメーラーを実装することでメールサーバの中身（メールボックス）とデータ通信できるようになります。
一方でメールサーバは受信したメールデータを格納する機能（メールボックス）と他メールサーバへメールを送信する機能をもったサーバのことを指します。Microsoft製のメールサーバ製品がExchange server(M365の場合はExchange Online)となります。
![スライド3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/659fc7ff-c17f-46df-0b01-c8d86dc3d818.png)

# OutlookとExchangeの関係
よくOutlookを利用するとExchange Serverにしか接続できないと思われている方がいますが前述のとおりOutlookとExchange Serverは別物なので、OutlookはExchange以外にもGmailやその他メールサーバへの通信設定も可能です。Outlookとは**単にメールサーバとの通信を行い、メールボックスの中身を人間に見やすいように加工してくれるアプリ**なのです。

![スライド8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/a90b781d-5419-5d92-8134-b639d0d55b7f.png)


## 注意点
Outlookライセンス付きのM365を購入し、「これでメール送受信できる！」と思っている方がいますがこれもよくある間違いで、あくまでOutlookは**メールサーバとの通信を行うクライアントソフト**であり、メールサーバではないので別途メールサーバは用意する必要があります。


# メールが送信される仕組みについて
一般的にメール送信で利用されてるプロトコルとメール受信(メールボックスへのアクセス)で利用されるプロトコルは決まっています。

- 送信プロトコル=SMTP(S)　※Sはover TLS/SSLの場合
- 受信プロトコル=IMAP(S)/POP3(S)



![スライド4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/238c2883-38fb-5535-f10f-5fe4931ba392.png)

下記の設定画面の中だと
- [アカウントの種類]を選ぶ部分がありますがここが受信プロトコルの選択になります。
- 「受信メールサーバ」と「送信メールサーバ」がどのメールサーバに接続するかのパラメータになります。
※この値は一般的にメールサーバ側の指定値を登録します


![メール環境.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/f8b96a2a-2997-23e7-a508-9ba7636a1b63.png)


メール送信時のシーケンスですが
- MUA(Mail User Agent)がメールをメールサーバに送信
- MTA(Mail Transfer Agent)がっメールを別メールサーバに転送
- 送信先のメールボックスのあるメールサーバでMDA(Meail Delivery Agent)がメールボックスにメールを格納

こんな感じになっています。


![スライド5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/fd1ed36a-f24e-e673-9322-083f3d687132.png)

- outlook=MUA
- Exchange Server=MTA&MDA


# SPFとは？
迷惑メール対策やマルウェアの拡散防止などを理由にGmailなど有名どころのメールサービスベンダーでは「送信者認証必須」となっているところもかなり増えてきました。
。
例）[Gmail メール送信者のガイドライン](https://support.google.com/mail/answer/81126?hl=en)

よく設定推奨もしくは必須となっているのがSPF(Sender Policy Framework)という認証方法です。

SPFがどのような認証かというと「送信元ドメインの正規メールサーバから送信されているか=**送信元ドメイン偽装をして他メールサーバから送信されたものではいないか**」を確認するものです。

SPFを利用する前提として、送信元メールドメインを管理しているDNSサーバにSPFレコードを記入しておきます。
以下の図だと” test-from@zz.com   IN TXT v=spf1 ip:4 AAA.BBB.CCC.DDD - all”がSPFレコードです。

![スライド6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/aecd5372-b760-66e1-d58b-ba930aacc7bd.png)

メールを受信したメールサーバは送信元メールドメインをDNSで名前解決し、送信元メールドメインに対応する送信元メールサーバのIPアドレスを特定します。そのIPアドレスとメールエンベロープに記載された送信元IDアドレスを比較し、一致していたら正規のメールサーバからの送信であると判断します。

![スライド7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/4b230312-5c00-848a-e2a1-cbd6bfa6f754.png)

名前解決したIPアドレスとメールエンベロープの送信元IPアドレスが違う場合、そのドメインが利用する本来のメールサーバではない別サーバからメール送信があったことになり、送信元ドメインを偽装してメール送信していることになります。

## SPFで防げないないもの
SPFは送信メールサーバを確認することでそのドメインの正規の送信者かを認証をするものです。そのため偽装されていない場合、例えばメールサーバを乗っ取り、正規に契約している送信ドメインを利用して、正規のメールサーバから大量の迷惑メールを送付した場合などはSPFでは防げない可能性があります。


# おわりに
この手のインフラ系の話は経験上、教えてくれる人や学校は少ないと感じます。一般企業ではプログラミングなんかよりも必要だと思うのですがね。今後のITインフラに携わる方のお悩みが少しでも減れば幸いです。