こんにちは!akiponxといいます。
さて、今回のブログはメールのあれこれについて書きます。
メールというと、いつでも送信できて、いつでも受信できる。 これが当たり前ですよね。
まれにメールが届かない。という声を聴くことがあります。
今回はメールが届かない原因について触れてみたいと思います。
まずはRakusのブログではメール関連の記事があまりないので今回は仕組みの部分。イメージを付けていただければと思います。
当たり前にメールの送受信ができる裏側で何が起きているのか見ていきましょう!
1. メールとは
メールとは手紙のやり取りと似たようなものです。 画像①を使って説明します。
①手紙を作る
- 封筒に下記を書く
- 宛先の住所
- 差出人の名前
- 手紙の本文を書く
- ポストへ投函
②郵便配達の人が頑張って宛先の住所に手紙を届けます。
③家のポストを確認して手紙を受け取る
メールの送信・受信もイメージは同じです。
2. メールの送信・受信
こちらについてもメールの仕組みで使った図と見比べて説明していこうと思います。
①手紙を作る部分:メールを作成して送信ボタンをクリック
- メーラ(gmailなど)でメールを作成 (図1の封筒にあたる部分)
- 宛先メールアドレスを記載 (例:hoge@example.com)
- 自動で入力されていることが多いですが、差出人アドレスを記載 (例:akiponx@rakus.co.jp)
- 本文を入力 (図1の本文にあたる部分)
- 送信ボタンを押す (図1のポストに投函にあたる部分)
②郵便配達の人が頑張る部分:メール送信サーバが受信サーバへメール送信
- この時にメール送信サーバが行っている処理をざっくり説明。
- 宛先メールアドレスのドメイン(example.com)を名前解決してメール受信サーバのインターネット上の住所であるIPアドレスを取得。
- メール受信サーバへメールを送信
③郵便ポストにメールを取りに行く部分:受信者がメーラで受信メールサーバに届いているか確認しに行く
- メール受信はメーラによってメール受信サーバにメールが届いているか確認しに行く作業。
さて。ざっくりとした流れは説明した通りですが、送信・受信についてもう少し細かく見ていきます。
メール送信
①の部分を切り取った画像がこちら。さらに処理の内容を記載しています。後で全部マージします。
1-1. 差出人アドレスがメールを送信していいかどうか認証する(SMTP認証と呼ばれているもの。)
1-2. 認証が通れば送信する準備に入る
続いて②を切り取った画像。
②の中身を細かく分割するとこんな感じです。では説明していきましょう。
2-1. どこに送ればいいのか確認するため、送信先メールアドレスのドメイン部分を確認。
2-2. 確認したドメインの住所がどこなのかDNSレコードにMXレコードを問合せ
2-4. DNSからもらった住所宛にメールを送信する。
※MXレコードとはメールをどこに送ればいいのかを教えるための、DNSレコードの一種です。
メール受信
さて、続いてメール受信ですが、メールが受信できるようになるまでもいくつか過程があります。
メール送信の段階で②の処理が全て終わっているように思われますが、実はまだ終わっていません。
続きはメール受信サーバ側で処理がされているためこちらに続きを記載します。
2-5. 届いたメールの差出人アドレスのドメインを確認
2-7. SPF(またはDKIMの公開鍵)の評価を実施 ※1
2-8. 問題なければメールを受け入れる処理を実施
2-9. メールボックス(イメージ的にはポスト)にメールを置く。
3-1. メーラがPOP3 or IMAPでメールがあるかどうか確認しに行く ※2
3-2. 新着メールが存在していればダウンロードして表示する。
※1 SPF(またはDKIM)の評価によってはメールが拒否されることがある。
※2 POP3やIMAPはメールを受信する用の通信プロトコル。
また、POP3SやIMAPSといったSSL証明書を利用したプロトコルもある。
全部をマージするとこんな感じ
3. メールが届かない原因
さて、メールの送信・受信についてはある程度説明できたかと思います。
続いては当たり前に届くはずのメールが届かないことがある原因ついて、考えられることを書いていきます。
- スパムメール判定がされている
- メールアドレスが間違っている
- etc...
メールが届かない原因としてスパムメールと評価されてしまい、拒否されているケースが多いです。
スパムメールとは
スパムメールとは迷惑メールの一つで、主に広告や宣伝、ウィルス付きメールなどに使われることが多いです。
広告や宣伝に使われるならいいんじゃない?と思う方もいるかと思いますが、そうではありません。
主に詐欺やデータを取る目的で送られていることが多いです。
そもそもメール配信などはオプトイン(メルマガ送ってもいいですよ。という意志表明)が無いと送ってはいけないのがルール。
そのオプトインがない人にメールを大量に送る。迷惑ですよね。
スパムメール対策
スパムメールを受信しないようにする対策として、
- スパムフィルターを実装する
- 逆引きが設定されていないIPアドレスからは受信しない
- SPFチェックが通らないものを受信しない
- DKIM署名がないものを受信しない
- ブラックリストに登録されているドメイン(IPアドレス)からのメールは拒否する
などがありますが、「メールが届かない!」ということは大きなクレームにもつながるため、
なかなかSPFやDKIMを設定していないメールは受信しない。という強気な対応に踏み切れないところがあります。
そんなこんなで続いてはSPFとか何か、DKIMとは何か。について書いていきます。
4. SPF
送信元ドメインの名前解決を実施しTXTレコードに記載があるSPFの値を確認します。
例を出すと基本的にこんな感じのSPFが設定されています。
# SPFの例 rakus.co.jp descriptive text "v=spf1 include:spf.rakus.co.jp ip4:xxx.xxx.xxx.xxx ~all"
SPFの値にはIPアドレスなどが記載されており、送信サーバのIPアドレスがSPFに記されていればOK、記載されていなければ基本的にNGとなります。
受信メールサーバ側の設定によりますが、このSPFのチェックを通らないとメールを受信しない。という設定もできます。
もし「メールが届かない…orz」となった方はSPFをチェックしてみるのもいいかもしれないですね。
5. DKIM
DKIMとは、これもDNSのTXTレコードを利用した技術です。SPFより少し複雑。
ざっくりとした流れとしては
こんな感じでDKIMは評価されます。
DKIM署名を実装する方法などなどは今回は書きません。
6. DMARC
基本的にメール受信についてはSPFが設定されていなくても、DKIMが設定されていなくても、
そのメールを受信するかどうかは受信メールサーバ側が決めています。
DMARCを設定することによって、メール送信者側が挙動を指定できます。
例えば、
上記の設定をすることによって、自分のドメインを語ったメールを受信させないようにできます。
また、DMARCを設定することによって、自分のドメインを語ったメール(SPFやDKIMの評価が通らなかったもの)が何通送られているのか
というレポートメールを受け取ることができます。
これを受け取ったから何ができるのかといわれると難しいですが、DMARCの運用を考えていかないといけないですね。
7. まとめ
メールが届かない原因は今回記載した以外にもありますが、
本記事に記載されている内容を踏まえてメールが届かなった原因の調査や対策をしてみていただければと思います。
大手フリーメールの会社ではセキュリティが厳しくなってきており、迷惑メールフォルダに振り分けられてしまうこともしばしばあります。
迷惑メールフォルダに振り分けられないように、SPF・DKIMの対策をしっかりしていきましょう!
そのうち別のメール関連の記事も書きます。
参考にさせていただいたページ
エンジニア中途採用サイト
ラクスでは、エンジニア・デザイナーの中途採用を積極的に行っております!
ご興味ありましたら是非ご確認をお願いします。
https://career-recruit.rakus.co.jp/career_engineer/カジュアル面談お申込みフォーム
どの職種に応募すれば良いかわからないという方は、カジュアル面談も随時行っております。
以下フォームよりお申込みください。
forms.gleイベント情報
会社の雰囲気を知りたい方は、毎週開催しているイベントにご参加ください! rakus.connpass.com