Telnet で SMTP

  概要





SMTP は 「Simple Mail Transfer Protocol」 の略で、ホスト間でメールを転送するためのプロトコルの名前です。いわゆるメールサーバとは、このSMTP のサービスと、実際のメールデータを一時保存しておくメールボックスの機能を持つ POP サービスの両方の機能を持つサーバの事を言います。

SMTP は送信側主体のプロトコルであり、断続的にしかネットワークに接続されない端末宛への送信に対しては有効な働きをしません。そのため POPサーバを用意し、ユーザ別のメールボックスに保存しておきます。そうしておけば、送信先のユーザは必要なときに POP サーバに接続して自分宛てのメールを POP サーバから受信する事ができます。

SMTP は、TCP/IP プロトコルの ポート 25 番を使用します。サーバにしても、クライアントのメーラにしてもこの値を変更する事はできますが、特殊な事情でも無いかぎり各ソフトのデフォルトである 25 番を使用します。






  対話コマンド



SMTP クライアントはサーバと簡単な対話処理を行っています。この時 SMTP はいくつかのコマンドを使用
しますが、以下の五つのコマンドで基本的な操作を行うことができます。

※ 現在では、HELO では無く、EHLO を使用する

コマンド意味
HELO通信を開始する
MAIL FROM:メールの送り主
RCPT TO:メールの宛先
DATAヘッダを含むメールの本体を送信する
QUIT通信を終了する


参考リンク



  Telnet による送信テスト

Windows 2000(XP)では、DOS窓で行います。

  
>telnet 

で、telnet が開始されます。
Windows 2000 では、>unset local_echo
Windows XP では、>unset localecho

>open サーバー名 25
  

一つ一つコマンドを入力気して応答を確認するのも良いですが、以下を貼り付ける事によって一括して実行可能です

SMTP 認証が無い場合
  
EHLO localhost
MAIL FROM: lightbox@localhost
RCPT TO: lightbox@localhost
DATA
From: lightbox@localhost
Subject: test Mail

ABCD0123XYZ
.
QUIT
  
※ 但し、POP before SMTP が必要の場合は、メールクライアントで受信処理を実行しておきます



  SMTP 認証無し

本文に Shift_JIS の日本語を指定するには こちら で JIS に変換して赤い部分と差し替えて下さい

  
EHLO localhost
MAIL FROM: lightbox@localhost
RCPT TO: lightbox@localhost
DATA
From: lightbox@localhost
Subject: test Mail

$BF|K\8l(B
.
QUIT
  

Subjectに Shift_JIS の日本語を指定するには こちら で 先ほど JIS に変換した文字列を、
base64_encode を行って赤い部分と差し替えて下さい

  
EHLO localhost
MAIL FROM: lightbox@localhost
RCPT TO: lightbox@localhost
DATA
From: lightbox@localhost
Subject: =?ISO-2022-JP?B?GyRCRnxLXDhsGyhC?=

$BF|K\8l(B

.
QUIT
  



  PLAIN で SMTP 認証

サーバーが AUTH コマンドに対応している必要があります。
( ※ EHLO コマンドの応答の中に AUTH エントリがあれば使用可能です )

こちら で \0ユーザー\0パスワード
という文字列を base64_encode_bin で変換して赤い部分と入れ替えて下さい

  
EHLO localhost
AUTH PLAIN AGxpZ2h0Ym94AHBhc3N3b3Jk
MAIL FROM: lightbox@localhost
RCPT TO: lightbox@localhost
DATA
From: lightbox@localhost
Subject: =?ISO-2022-JP?B?GyRCRnxLXDhsGyhC?=

$BF|K\8l(B

.
QUIT
  



  LOGIN で SMTP 認証

赤い部分は、上から ユーザー、パスワードとなるので base64_encode した文字列と置き換えて下さい

  
EHLO localhost
AUTH LOGIN
bGlnaHRib3g=
cGFzc3dvcmQ=
MAIL FROM: lightbox@localhost
RCPT TO: lightbox@localhost
DATA
From: lightbox@localhost
Subject: =?ISO-2022-JP?B?GyRCRnxLXDhsGyhC?=

$BF|K\8l(B

.
QUIT
  



  CRAM-MD5 で SMTP 認証

このメカニズムでは、一括で行う事ができません。
また、エンコードも PHP を使用する必要があるので、以下のようにして行って下さい

  
EHLO localhost
AUTH CRAM-MD5
↓応答( 毎回違います )
NTMzOTcxNzUwMTk3Mjc4NEBsb2NhbGhvc3Q=
↓base64 デコード
5339717501972784@localhost

<?
print hash_hmac( "md5", "5339717501972784@localhost", "password" )
?>

↓上記結果
42098626e455d9aaedf8e37c493cab19
↓前に、ユーザーとスペースを付加
lightbox 42098626e455d9aaedf8e37c493cab19
↓base64 エンコード
bGlnaHRib3ggNDIwOTg2MjZlNDU1ZDlhYWVkZjhlMzdjNDkzY2FiMTk=
↑上記文字列を送る
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加




SQLの窓  天気  IT用語辞典
Yahoo!ニュース  マルチ辞書
PHP マニュアル  Google URL短縮 


フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ