SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

telnetで手入力でSMTPをしゃべってみる

telnetでおしゃべりシリーズ – SMTP編

telnetのコマンドモード開始。

Microsoft Windows [Version 6.0.6002]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

C:\>telnet

telnetスタート。ご使用のメールサーバーに25番ポートで接続を試みます。
(プロバイダなどネットワークの環境によっては25番ではなく587番の場合もある)

Microsoft Telnet クライアントへようこそ

エスケープ文字は 'CTRL+]' です

Microsoft Telnet> o mail.example.com 25

つながりました。

220 mail.example.jp ESMTP

ここから先は、SMTPサーバーによってまちまちでしょう。
よそのプロバイダのメールサーバーなどは外部からつないでメールを送らせてもらえないのが普通です。
普通の設定のサーバーなら、sshでログインして、ローカルから送ることならできるなど、制限があるのが普通でしょう。

220 mail.example.jp ESMTP   ← 接続してすぐ
HELO mail.example.jp   ← 入力
250 mail.example.jp   ← 返答
MAIL FROM:xxxxxx@xxxxx.xxx     ← 入力
250 ok   ← 返答
RCPT TO:xxxxxx@xxxx.xxx   ← 入力
250 ok   ← 返答
DATA   ← 入力
354 go ahead   ← さあ入力してねの返答。以下ヘッダと本文を手書きする。
Subject: telnet de mail wo okuru.
From: xxxxxx@xxxxxx.xxx
To: xxxxxx@xxxxxx.xxx
本文本文本文本文本文
本文本文本文本文本文
本文本文本文本文本文
本文本文本文本文本文
.   ← 改行+ピリオド+改行が終わりのしるし
250 ok 1257435210 qp 21454   ← 送信完了の返答


これだけでメールを送れるので、sendmailコマンドではなく、phpでSMTPをしゃべってメールを送ることは、そんなに難しいことではありません。

関連するメモ

コメント