メールの知識
予備知識として下記が必要だが、調べれば文献はたくさんあるため、割愛しながらまとめています。
SMTPサーバ
みなさんが書いたメールを相手に届ける仕事をするサーバです。
SMTPサーバにメールを渡し、そのサーバが相手にメールを配達する。
また、メールサーバから別のメールサーバに対してもメールを送信することもできます。
プロトコル上は両方とも全く一緒です。 というのも、SMTPでデータを受け取る方のサーバは相手がメールクライアントかメールサーバかはあまり関係ないからです
メール転送エージェント(MTA)
SMTPサーバの中にいるメール仕分け用のプログラムです。
メール送信の話でよく出てくる用語には
メール転送エージェント(MTA):メール仕分け用のプログラム
メール配信エージェント(MDA):メール配信用のプログラム
の3つが、あります。
なので、パソコン上でメールユーザエージェント(MUA)を使って作られたメールはSMTPサーバに送られます。
SMTPサーバに送られたメールは、メール転送エージェント(MTA)の手によって仕分けられ、メール配信エージェント(MDA)の手によって相手先に送られます。
代表的SMTPサーバ
- meildev
- MockSMTP
- FakeSMTP(Java環境で起動)
- MailCatcher(Ruby製)
- MailDev(Node.js製)
- Mailhog
電子メールでは下記3つの技術が確立されていることでメール送信ができるようになる。
- メールを送信する技術
- メールを配送する技術
- メールを受信する技術
その他の技術について
POP
POP(Post Office Protocol)は、メール受信に用いるプロトコルです。
メールソフト上でPOPを設定した場合は、メールサーバーに届いたメールをメールソフトがパソコンにダウンロードするようになります。
また、メールソフト側の設定にもよりますが、メールソフトがメールをダウンロードした後はメールサーバーのデータは削除されます。
POPのメリットは、メールサーバーにデータを残さない設定なので**、メールサーバーの容量削減になることです。
また、メールデータは端末に残りますので、過去に受信したメールはインターネットに接続していない状態でも閲覧**できます。
デメリットは、POPは受信した端末にデータが保存される形式なので、複数台でメールを閲覧する場合には向かないことです。
IMAP
IMAP(Internet Message Access Protocol)は、メール受信に用いるプロトコルです。
よくPOPと比較されるプロトコルでもあります。IMAPでは「143」番ポートを使用します。
IMAPを設定した場合、メールサーバーに届いたメールを「インターネット」を介してメールソフトが読みにいきます。
POPでは端末にメールデータを自動的にダウンロードしていましたが、IMAPでは端末にデータは残しません。
スマートフォンとPC両方でメールをチェックしたいなど、複数端末で同じメールを読めるのはIMAPのメリットと言えるでしょう。
また、新しいパソコンに買い替えた時なども、面倒なデータ移行なしでスムーズに切り替えができます。
IMAPのデメリットとしては、メールサーバーにデータが残り続けるため、サーバー側の容量次第では、すぐにメールボックスが満杯になってしまうことです。
もしIMAPの設定を検討する場合には、ご利用のメールサーバーの容量上限を確認されることをおすすめします。
SMTPによる通信内容
通常は、対話式でメールを送る。
220 MailServer ESMTP
HELO myhostname.hogehoge.or.jp
250 myhostname.hogehoge.or.jp
MAIL FROM: username@hogehoge.or.jp
250 OK
RCPT TO: abcedf@hogehoge.or.jp
250 OK
DATA
354 End data with .
To: abcdef@hogehoge.or.jp
Subject: test
From: username@hogehoge.or.jp
test mail
.
250 OK
QUIT
221 BYE