LoginSignup
2
2

More than 3 years have passed since last update.

Fake Sendmailってなに??

Last updated at Posted at 2020-07-30

背景

 最近、LANで動いているサイトのPHPソースからGoogleメールを送信しなければならない状況になりました。その時に色々調べていく中で、「Fake Sendmail」なるものを使って実現しました。今回は、Fake Sendmailがどんなものなのかを理解した範囲で記事にまとめます。
 自分なりの理解なので間違ってることがあるかもしれません。注意してください。また、サーバーに対してある程度知識がある人でないと何言ってるか分からないかもしれません。

SMTPサーバーとは?

 まず、Fake Sendmailを理解する上で、SMTPサーバーの理解は避けられません。SMTPサーバーとは、、、

SMTPには主に以下の2つの役割があります。
①メーラーからメールを受け取る
②宛先のメールアドレスから、相手側のメールサーバーを見つけてメールを転送する

引用先:https://sendgrid.kke.co.jp/blog/?p=11638

とあります。メーラーは、パソコン上にあるメールソフトの事を指します(OutlookとかChromeで開いたGmailとか)

つまり、SMTPサーバーはどっかのパソコンから「メール」を受け取って、そのメールの宛先へ「メール」を転送する役割を持っています。

GmailのSMTPサーバー

 今回はGoogleのSMTPサーバーに接続することを前提としていますが、一般的にSMTPサーバーが受け入れ可能としているポート番号は25・465・587番としています。このうち、465番ではSSLによる通信、587はTSLによる通信を約束しており、それが出来ないメーラーとは通信できません。(25番では暗号化が必要されません)
図1.png
 
 GoogleのSMTPサーバーでは、25番の接続を禁止しています。かっこにも書いたように、25番の通信は安全でないので、暗号化される465番と587番のみを許可しています。また、このサーバーはドメイン名「smtp.gmail.com」でアクセスできます。
q2.PNG

Fake Sendmailで行っている事

 次にFake Sendmailで実際に行っている事を書いていきます。まず、Fake Sendmailを使うときに、「sendmail.ini」をいくつか書き換えましたよね?主に以下の内容を設定していたのです。

  • 接続先のアドレス:smtp.gmail.com
  • 接続時のポート番号:587(465でもオッケー)
  • アカウント情報:ユーザー名(user@gmail.comの形式)とパスワード(user@gmail.comにアクセスする際のパスワード) 図3.png  この情報からも察せるように、Fake Semdmailでは、「すでに構築されたSMTPサーバー(今回はsmtp.gmail.com)へ接続し、メールを送信する」という事をします。(図の例は465番ポートを使用した場合) 図4.png  そして、メールを転送するのですが、その際にGmailの「どのアカウントで送信するか」をuser@gmail.comで指定し、パスワードも一緒に送信します。もし、そのアカウント情報が正しければ、SMTPサーバー(smtp.gmail.com)はメール内容を受け取ってくれます。 図5.png  しかし、アカウント情報が正しくなければ、エラーログを返します。(設定によってログを出すようにする) 図6.png  正しくsmtp.gmail.comへ転送されたメールは、送信元アカウントuser@gmail.comとして、Gmailがメール内容に書かれている宛先へ、送信されます。これがFake Sendmailが行っている事です。 図7.png

おわりに

 ポイントとしては「自分でメールサーバーを立てていない」という事です。XamppでFake Sendmailを使っていたのですが、これを理解するまで「Mercury Mailインストールしたけど、Fake Sendmail使う必要あるのかなぁ。。。」とか思っていました。Fake Sendmailを使う事で、LANで構築されるメールサーバーMercury Mailを使わなくてもよくなる、って事ですね。

それでは!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2