電子メール

手紙はポストに入れて郵送されて届く。
電子メールはネットワーク上のメールサーバにポスト兼私書箱に見立ててテキストや各種ファイルをやり取りする
昔はテキストファイルしか送ることができなかった。
```MIME(Multipurpose Internet Mail Extensions)```という規格でさまざまなファイル形式を扱えるようになった。
電子メールを実際にやり取りするには、```電子メールソフト（メーラー）と呼ばれるアプリケーションソフト```を使用する。

# メールアドレスは、名前＠住所なり
```kitami@gihyo.co.jp```
メールアドレスは２つの要素からなっている。
それは
* ドメイン名
* ユーザー名
```@```を境に分けられている。

### ドメイン名
インターネット上における私書箱の位置を表す。
コンピュータの位置を指す
#### ドメインとは？
https://qiita.com/masatom86650860/items/294c3d47194863ced945#%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%90%8D%E3%81%A8dns

### ユーザー名
一つのドメイン内で重複する名前を用いることはできない。
#### 気づき
ドメイン内で一意のユーザー名にしなければならない。

# メールの宛先には種類がある
メールを作成する時に見かける```TO```、```CC```、```BCC```は宛先の種類だ。

### TO
```送信したい相手```のメールアドレスを記載する。

### CC（Carbon Copy/カーボンコピー)
参考までにコピーを送っとくから、```一応確認してもらう相手```。

### BCC（Blind Corbon Copy/ブラインドカーボンコピー）
```他者には伏せた状態```でコピーを送る。
この場合の他社とは```TO```と```CC```の相手のこと。

#### 気づき
CCの場合は送信されたことがわかるのか。

## TO以外の宛先以外を意識するメール
複数の宛先にまとめてメールを送信するとき
同じメールを複数の相手に出すやり方を```同報メール```と呼ぶ。

# 電子メールに使われるプロトコル
## 電子メールを送信するプロトコル（SMTP）
電子メールを送信にはSMTPというプロトコルを使用する。

実際の郵便に置き換えてみると
ポストに投函してそれが配達され、それがポストに届くまでがSMTPの役割
ポストからの取り出しはしない。

### SMTPサーバの役割
* SMTPサーバに電子メールソフトから送信された````メール本文を受け付ける```。
* 相手先の```メールサーバへとメールを配送```する。
* 配送されたら```メールボックスに保存```される。

#### 気づき
それぞれにメールボックスが存在するのか。
どうなっているのだろうか？

## 電子メールを受信するプロトコル(POP)
電子メールを受信するには```POP```というプロトコルを使用する。

今までの受信方式の```POPでも「サーバに残す」や「サーバにメッセージのコピーをおく」という設定を行えば、他のパソコンや、スマートフォンからでもメールを見ることができました```が、1台目のパソコンで不要なメールを削除しても、2台目のパソコンで受信を行うと```削除した不要なメールを受信```してしまいます。
出典 https://fctv.mitene.jp/mail/which.html

### POPサーバの役割
電子メールソフトなどPOPクライアントから```受信メールを要求される```。
それを受信済メールを```取り出して配送```。

#### POP３について調べていた。（内容はあまり変わらない）
https://qiita.com/masatom86650860/items/294c3d47194863ced945#%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%90%8D%E3%81%A8dns

## 電子メールを受信するプロトコル(IMAP)
* POPとは異なり、```送受信データをサーバ上で管理するため、どのコンピュータから同じデータを参照```することができる。
    出典 キタミ式イラストIT塾　基本情報技術者　令和03年

* 今までの受信方式の```POPでも「サーバに残す」や「サーバにメッセージのコピーをおく」という設定を行えば、他のパソコンや、スマートフォンからでもメールを見ることができました```が、1台目のパソコンで不要なメールを削除しても、2台目のパソコンで受信を行うと```削除した不要なメールを受信```してしまいます。

* 「IMAP」とは、受信メールを```サーバ上で管理```し、メールソフトに表示させる受信方式です。 
* IMAPではメールを```パソコン等の端末にダウンロードせずに、サーバ上で管理・閲覧```しますので1台目のパソコンで既読・未読・削除を行うと、2台目のパソコンで見た際にはそれらが```反映された状態でメールを読むことができる```。
* インターネットに```接続できなくても、最後に受信していた状態のメールを見ることができる```。
* メールを見たり削除するには、```常にサーバと通信を行う必要```があり、メール数が多くなるとメールの一覧を取得するだけでも時間がかかります。また、```容量の上限に達すると新しいメールを受信することができなくなる```ので、```定期的に不要なメールを削除```する必要があります。

出典 https://fctv.mitene.jp/mail/which.html
### POPとIMAPの違い
* IMAPサーバーもPOPサーバーと同様にメール受信の際に必要となるサーバーです。受信したメールを受信者のパソコンなどにダウンロードするPOPサーバーに対し、IMAPサーバーを利用することで、受信者は```メールサーバーに保存したままの状態でメールを読める```。パソコンほどの```データ保存容量を持たないスマートフォン```などでメールを受信する際は、```メールソフトにIMAPサーバーが設定されることが多い```です。
出典 https://www.kagoya.jp/howto/it-glossary/mail/smtpserver/#:~:text=2%E3%81%A4%E3%81%AE%E9%81%95%E3%81%84%E3%81%AF%E3%80%81POP,%E3%81%8C%E3%82%88%E3%81%8F%E5%88%A9%E7%94%A8%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82

* POPとIMAPの最も大きな違いはメールの保存場所だ（図1）。POPではサーバーに届いたメールをメールアプリがダウンロードすると、```原則としてサーバー上からは削除される```。このため、ほかの端末では受信できない。一方のIMAPは送受信したメールをサーバー上に保存しておき、アプリ側から適宜それらを参照する。このため複数の端末から同じメールを読める。```スマホの普及で複数台アクセスが当たり前となった今はIMAPが主流```だ。
出典 https://xtech.nikkei.com/atcl/nxt/column/18/01852/110900002/
図は出典元へ

#### 気づき
サーバと接続されていないと受信メールの更新ができないのか。
今は複数のインターネット機器を持っているからIMAPの方が都合がいいのか。

# MIME(Multipurpose Internet Mail Extensions)
電子メールでは```ASCII文字しか扱うことしかできない```。
日本語などの２バイト文字や、画像データなどのファイルの添付を行えるようにする拡張規格が```MIME(Multipurpose Internet Mail Extensions)```です。

しかし２バイト文字や画像```データが混在するとコンピュータはわからなくなる```。
なのでメールをパートごとに分ける。それによって色々なデータをメールで表すことができる。

MIMEではメールヘッダ中で内容の```データ型を指定するための標準形式であるMIMEタイプ（メディアタイプ）```を定めており、```“Content-Type:” ヘッダの中で「type/subtype」の形式でデータ形式```を指定する。例えば、プレーンテキストは「text/plain」、HTML文書は「text/html」、JPEG画像は「image/jpeg」などと定められている。
出典 https://e-words.jp/w/MIME.html#:~:text=MIME%E3%81%A8%E3%81%AF%E3%80%81TCP%2FIP,%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E6%8B%A1%E5%BC%B5%E4%BB%95%E6%A7%98%E3%80%82

## MIMEで導入されたヘッダ
### MIME-Version
将来MIMEが拡張されたときに```バージョンを区別する```ためのヘッダ。
```
Mime-Version: 1.0
```

### Content-Type
このメッセージ中の```データの種類を指定```する。
```
Content-Type: type/subtype; parameter
```

### Content-Transfer-Encoding
MIMEでは```US-ASCIIだけでなくデータのさまざまな符号化方法の指定```がこのヘッダで可能になっている。
```
Content-Transfer-Encoding: mechanism
```

# 電子メールは文字化け注意!!
メール機能でいろんな人と繋がるが、相手のコンピュータもぞれぞれ違う場合がある。

あるコンピュータで表示できる文字だからといって他のコンピュータでも表示できるとは限らない。
特定のコンピュータでしか表示できない文字のことを```機種依存文字```という。

この機種依存文字はメールでの使用は控えた方がいい。
p４０３の図を見る。

# 問題を解いた時の気づき
メールを送るときはメールサーバから相手のメールサーバへ転送することがあるから```SMTP```のプロトコルを使うのか。
POPは電子メール受信のプロトコル

出典 キタミ式イラストIT塾　基本情報技術者　令和03年