はじめまして
皆様、初めまして。今年、シャノンに入社いたしました、takiと申します。
ざっくりと自己紹介をいたしますと、
学生時代に発酵食品について研究&食品衛生管理者取得
↓
開発エンジニアとして就職
??
上記の通り、情報の勉強はしておらず、プログラミングも未経験でした。
我ながら謎な進み方していますが、もともとIT業界、プログラミングというものに興味があったため、望んだ道に進めていると思っています。
今年は、社会人はじめて、開発はじめて、都会はじめてのはじめて尽くしの1年でした。
そんなはじめて尽くしの中でも、はじめての配属は、メール関係のチームになったのですが、お恥ずかしながらメールがどういったものかを知りませんでした...
ということで、自己理解のために、アドベントカレンダーに参加し、「はじめてのメール」と題しまとめてみました。
はじめてのメール
・通信の種類
日常において、無意識にメールを送受信しているが、どういう仕組みなのか気になったため調べてみました。SMTP (Simple Mail Transfer Protocol) :
メール送信時に使用されるプロトコル。SMTPに対応したサーバをSMTPサーバといい、郵便局のような役割をします。
いざメールを送信するとなった場合、まずは、送信者のSMTPサーバに送られます。さらにそこから、受信者のSMTPサーバに送られた後に、受信者のメールボックスへと届きます。
POP (Post Office Protocol) :
メール受信時に使用されるプロトコル。クライアントから、メールサーバに自分宛のメールが届いているか、リクエストがメールサーバに飛ぶと、メールサーバは本人かどうか、ユーザー名とパスワードを利用して認証を行います。
確認がとれた後、メールをリクエスト元に転送します。
イメージとしては、郵便局に行って、目的のものを受け取るような感じです。
IMAP (Internet Message Access Protocol) :
IMAPもメール受信時に使用されるプロトコルですが、POPとは仕組みが異なります。POPはメールサーバからメールをダウンロードしてきますが、IMAPはメールサーバ上で保存、管理します。
そのため、PCやスマホ、タブレットなどの複数の端末からでも同じメール環境として利用することができます。
・実際にやってみる
telnetを使用して、SMTP通信を確認してみました。ネットでtelnetの操作方法を探して、いざ挑戦。
telnet localhost 25 //(1)
Trying 108.XXX.XXX.XXX...
Connected to localhost.localdomain.
Escape character is '^]'.
220 localhost.localdomain ESMTP
HELO localhost //(2)
250 localhost.localdomain Hello localhost [108.XXX.XXX.XXX]
MAIL FROM:<taki@example.com> //(3)
250 OK
RCPT TO:<taki@example.com> //(4)
250 Accepted
DATA //(5)
354 Enter message, ending with "." on a line by itself
To:taki@example.com
Subject: test telnet smtp
From:taki@example.com
merumerumeru
.
250 OK
QUIT //(6)
221 localhost.localdomain closing connection
Connection closed by foreign host.
うまくいった...?
いろいろ伏せていますが、括弧つき番号が書いてある部分を入力しました。
内容としては以下のようになってます。
(1)目的のSMTPサーバーと接続するポート番号を入力し、telnetコマンドで接続
SMTPサーバーはコマンドプロンプトなどで
nslookup -type=mx 使用するドメイン名と入力すると調べることができます。
今回使用した25番ポートは、インターネット上でのメール送信のプロトコルに国際標準で割り当てられた識別番号で、メール送信のポート番号として一般的に割り当てられています。
(2)HELOコマンド
通信路の使用開始の宣言です。意味としては挨拶の「Hello」と同じです。
また、EHLOというコマンドもあり、こちらはSMTPサービス拡張仕様を利用したメール送信を行えます。
SMTPサービス拡張機能をサポートしていないサーバもあるので、拡張機能が使いたくても使えない場合があります。
(3)MAILコマンド
メール送信の開始を表すとともに、送信時にエラーが発生した場合の返信先を指定します。
MAILコマンドをサーバが受信すると、返信通路バッファ、転送経路バッファ、メールデータバッファの3つをクリアし、返信経路バッファに返信先を保存します。
(4)RCPTコマンド
メールの受取人を決めます。
(5)DATAコマンド
メッセージ送信開始をサーバに告げるコマンドで、ヘッダー情報、本文を入力します。
本文の最後にピリオドのみを入力することで、入力終了となります。
(6)QUITコマンド
接続を終了します。
今回は、送信、受信、どちらも自分のアドレスにしました。
ということで、メールボックスを見てみます。
感動、うれしい(語彙力)
POPも試そうと思ったのですがなんかうまくいきませんでした...
多分入力間違ってるんだと思います...
終わり
駄文にお付き合いいただきありがとうございました。本当に触り程度でしたが、前より確実に力にはなりました。多分。
これからも、周りにおいていかれないように、
必死にしがみつきながら、日々、精進してまいりたいと思います。
それでは、よいクリスマスを、よい年末を