「telnetの使い方」に戻る

SMTPサーバへの接続 (telnetの使い方)

以下の内容を読むとメールソフトがどのようにsmtpサーバと通信して メールを出しているか理解できます。

注意

ここで説明した内容を実際に実験する場合には以下の点に注意してください これを誤るとSPAMメールと認識され、トラブルが発生する場合があります。 これらの間違いはメールソフトの設定を間違えた場合と同じことですが、 毎回手入力するので、間違いの可能性が高くなると思われます。 特にご注意ください。

SMTP プロトコル

SMTPプロトコルはrfc821で規定されています。このプロトコルの 概要を以下で説明します。
SMTPで使われるポート番号は25番です。それで telnet でサーバに 接続するには、以下のようにコマンドを実行します。
telnet  SMTPサーバ名(あるいはIPアドレス) 25

SMTPサーバに接続したら、以下の順に情報を送ります。
  1. "HELO 接続元のマシンのホスト名"
    SMTPサーバに接続しているクライアントのホスト、つまり telnetを実行しているホストの名前を引数にしていして helo コマンドを実行 します。ここで入力するホスト名はどんな名前でも受け付けられると思われますが、 Received: フィールドに書き込まれます。

    例:
    helo pc750

  2. "MAIL FROM: 自分のメールアドレス"
    差出人のメールアドレスを入力します

    例:
    
    mail from: fujiki@kitakyu-techno-ctr.co.jp

  3. "RCTP TO: 宛先のメールアドレス"
    宛先のメールアドレスを入力します

    例:
    
    rcpt to: tab03124@nifty.ne.jp

  4. "DATA"
    メールの内容の送信開始するために、DATA コマンドを送ります。
  5. メールの内容
    送信する内容を送ります。
    メールの内容を開始するコマンドを送ります。 メールの最後に、"."だけの行を送ると入力が終了します。

    例:
    
    subject: test
    
    
    
    hello. How are you?
    
    Please send mail to me. Thank you
    
    
    
    Takeshi
    
    .

  6. "QUIT"
    SMTPへのコネクションを切るために QUIT コマンドを実行します。
以上のコマンドを順に実行すると、メールが送信されます

接続例

ここで実際にsmtpサーバの smtp のポート(25番ポート)に接続し、メールを送る 例を示します。赤色で表示されている部分が入力した部分です。

最初の行はtelnetの起動です。 UNIXシェルのプロンプトかDOSプロンプトで入力してください。 windows で telnet を起動して、メニューから接続先を指定する場合は、 [接続]メニューから[リモートシステム]を選択して表示されるダイアログで、 [ホスト名]にsmtpサーバを、[ポート]に25を入力して接続してください。

% telnet hibiki.kitakyu-techno-ctr.co.jp 25

Trying 210.160.116.130...

Connected to hibiki.kitakyu-techno-ctr.co.jp.

Escape character is '^]'.

220 hibiki.kitakyu-techno-ctr.co.jp ESMTP Sendmail 8.9.3/3.7W; Mon, 29 Nov 1999

17:04:45 +0900 (JST)

helo pc750

250 hibiki.kitakyu-techno-ctr.co.jp Hello hibiki.kitakyu-techno-ctr.co.jp [210.1

60.116.130], pleased to meet you

mail from: fujiki@kitakyu-techno-ctr.co.jp

250 fujiki@kitakyu-techno-ctr.co.jp... Sender ok

rcpt to: tab03124@nifty.ne.jp

250 tab03124@nifty.ne.jp... Recipient ok

data

354 Enter mail, end with "." on a line by itself

subject: smtp connection test



Hi! This is test.

Please mail to me. Thank you



Takeshi

.

250 RAA19395 Message accepted for delivery

quit

221 hibiki.kitakyu-techno-ctr.co.jp closing connection

Connection closed by foreign host.

fujiki@hibiki[/var/mail]

赤く表示されている部分がユーザが入力した部分で、それ以外の部分は サーバからの応答です。
このような通信を人がマニュアルで入力して行うことはほとんどありませんが、 メールのソフトウェアはこのようなコマンドを裏でsmtpサーバに送って通信を 行っているのです。

この SMTP サーバとメールソフトの間で行われる通信のプロトコルは rfc821で規定されています。このアプリケーション層のプロトコルでは、 ここで行われているような、サーバとクライアントの通信の際に 使うことのできるコマンド、それに対するレスポンス、およびそのコマンドに よってどのような効果が生じるのかなどを規定しています。

アプリケーションレベルの通信がどのようになされているか、 イメージを描いていただけたでしょうか。


[ポートを指定して使おう] [SMTP サーバへの接続] [POP サーバへの接続]
「telnetの使い方」のページへ戻る