telnetクライアントを模したプログラムでメール送信エラーが発生した理由と解決方法

このQ&Aのポイント
  • telnetクライアントを模したプログラムを使用して自身のインターネットサービスプロバイダのメールサーバにメールを送信しようとしたところ、502エラーが発生した。
  • 参考にしたサイトによれば、502エラーは「コマンドが認識されない」ことを意味している。
  • 原因は、TELNETプログラムの引数が正しくないことであり、正しい引数を指定することで問題が解決する。
回答を見る
  • ベストアンサー

telnetクライアントを模したプログラムで...

こんにちは、趣味でプログラミングをしているものです。 「基礎からわかる TCP/IP Java ネットワークプログラミング 」 という本に載っている 120行程度の telnetクライアントを模した プログラムをコマンドプロンプトから実行して 自分が登録しているインターネットサービスプロバイダの メールサーバにメールを送ってみようと試みたのですが、 HELLO コマンドを入力したら 502 5.5.2 Error: command not recognized と表示されてしまいました。 ------------------------------------------------------------ その際、検索によって表示された以下のサイトを 参考にさせていただきました。 (a) 「 MEMORVA 」 http://memorva.jp/memo/windows/telnet_smtp_pop.php (b) smtp コマンド http://www.webjp.ne.jp/manual/iServe/superV/28SMTP_code.html ------------------------------------------------------------- 以下に記しているのがコマンドプロンプトでの入力と表示です。 C:\java\T2>java T2 (サービスプロバイダのSMTPサーバー名) 25 220 ( サーバー名と思われる別の名前 )-----(1) HELLO (1) の名前 502 5.5.2 Error: command not recognized QUIT 221 2.0.0 Bye --- ctrl + c 入力 --- C:\java\T2> ------------------------------------------------------------ T2 を実行させるときの args[0] と (1) が異なるのですが それが、HELLO コマンドを受け付けない原因なのでしょうか? どのようにすれば上手くメールを送信できるのでしょうか? ご存知の方、教えていただけないでしょうか? よろしくお願いします。

noname#173931
noname#173931

質問者が選んだベストアンサー

  • ベストアンサー
  • EF_510
  • ベストアンサー率50% (306/604)
回答No.2

単純にコマンドスペルミスではないかと… SMTPコマンドは「4文字」です。 HELLOは間違いでHELOと送る必要があります。

noname#173931
質問者

お礼

さっそく回答していただきありがとうございます。 上記質問文の参考サイトを確認したら たしかに HELO でした。 貴重な時間を割いての回答ありがとうございました。

その他の回答 (2)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.3

> HELLO 「HELO」では。

noname#173931
質問者

お礼

さっそく回答していただきありがとうございます。 上記質問文の参考サイトを確認したら たしかに HELO でした。 貴重な時間を割いての回答ありがとうございました。

  • singlecat
  • ベストアンサー率33% (139/418)
回答No.1

SMTPではなく、ESMTPのサーバではないでしょうか? ESMTPのコマンドで再度お試し下さい。

noname#173931
質問者

お礼

さっそく回答していただきありがとうございます。 ご指摘いただいたESMTP について 検索してから試してみたいと思います。 貴重な時間を割いての回答ありがとうございました。

関連するQ&A

  • 簡単なプログラムhello worldが実行できない。(初心者)

    java VMとjava 2 SDKをインストールすれば良いと調べて分かったのでそれらを済ませました。そしてコマンドプロンプトを開いて ・「cd c:\java」と入力してjavaフォルダへ移動(\は半角の¥) ・「C:\java>javac hello.java」と入力。 すると、 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 と表示されました。どういう意味なのでしょうか? そして解決方法を教えてもらえませんか? ついでに、hello.javaの内容は下記です。 class Print{   public static void main(String[] args){     System.out.println("Hello World!");   } }

    • ベストアンサー
    • Java
  • WIN2KでTELNETクライアントが

    いつもお世話になっております。 WINDOWS2000Proでコマンドプロンプトより C:\>telnet とすると、以下のような内容のウィンドウが表示されTELNETが出来ません。 “Microsoft Telnetクライアントのライセンスの有効期間が切れています” TELNETでの接続が出来ず大変困っております。 どのように対処すれば良いかご教示ください。

  • JAVA

    コマンドプロンプトで C:\java>Hello.java などのコマンドを実行すると Hello.javaのテキストが開かれて、実行できないのですが。。 どうしたら直るんでしょうか??

    • ベストアンサー
    • Java
  • telnetでメール

    telnetでSMTPサーバーへ25ポートで繋ぐと、コマンド(HELOやmailなど)を送り、ステータスコードなどを確認できる状態になると思います。「Ctrl+}」を押下するとtelnetのコマンドモード(サブコマンド)の状態になります。 ▼この「Ctrl+}」を押下する前のコマンドが打てる状態というのはtelnet接続というのでしょうか? ▼また、セッションモードというはtelnetで23ポートに繋ぎ、そのサーバーでコマンドを実行することをいうのでしょうか? ▼コマンドモード(サブコマンド)の利点として、Ciscoのshow sessionsコマンドのように自分がどれだけのサーバーにtelnetセッションを張っているのかわかるということでよいでしょうか? 他にコマンドモードを使う理由などございますでしょうか?状態を確認できるということはわかるのですが、設定ができるとネットで調べたらありましたが、よくわかりません。 ▼最後に、ブラウザやメールソフトは裏でtelnetを利用しているという認識でよろしいでしょうか? 長々となってしまいましたが、返答できる方いましたらよろしくお願いいたします。

  • perlでtelnetクライアント

    perlで、ソケットを使って、telnet(ポート23)クライアントを作ろうと思いました。 telnet接続すると、まず最初にサーバー側から"login: "とプロンプトが出力されるので、それを読もうとしたところ、プロンプトなので改行が来ないためか、待ち状態になりました。 while(<socket>) print $_; while(read(socket, $c, 1) print $c; の2パターン試しましたが、どちらも1文字も読めませんでした。 改行が来なくても、読込みができるテクニックはありますでしょうか。 perlのスキルは、他人のを参考にしないと作れない程度の素人同然です。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • telnet の方法

    Windows のコマンドプロンプトから、FreeBSD に telnet でログインしたいのですが、どうやったらいいのでしょうか? C:\>telnet Microsoft Telnet>open (to)192.168.1.20 接続中: 1192.168.1.20...ホストへ接続できませんでした: 接続に失敗しました と出ます。サーバー側の設定が必要なのでしょうか?

  • コマンドプロンプトのエラー

    Windows10です コマンドプロンプトで、Java のサンプルプログラムをコンパイルしようとすると、以下のようになります。何が原因でしょうか? C:\Program Files\Java\jdk-15.0.1\src →ここにHello.java のサンプルプログラム(テキスト)は存在します。 C:\Program Files\Java\jdk-15.0.1\bin\→ここにjava.exeは存在します --------------------------------- (以下、コマンドプロンプトの画面) C:\Program Files\Java\jdk-15.0.1\src>C:\Program Files\Java\jdk-15.0.1\bin\javac Hello.java 'C:\Program' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

  • apacheとtelnet

    サーバーをapacheでたてそのホームページをTELNETで操作したいと思います。コマンドプロンプトで>telnet _IPaddと打っても23ポート番号が通信できませんでした。と出てしまいます。OS WINXPです。質問の仕方が変であればご記入いただければ幸いです。

    • ベストアンサー
    • Perl
  • Gmailにtelnetで接続

    僕はいまWindowsコマンドやC言語について勉強している中3です。 ここで質問なのですがいまtelnetというコマンドを勉強していて Webメール(gooメールやyahooメール、Gmailなど)をtelnetコマンドで CUI上で使える(メールの送信、受信ができるという意味です)という 記事を見つけやってみたいのですがあるサイトを参考に 1.まずnet start telnet でtelnetを有効にする 2.nslookupでMXサーバー?を探す 3.2でしたべたサーバーにtelnetで接続 すると続けるには何かキーをおしてください・・・ と表示されその後どうすればいいのかわかりません 詳しい方ご教授願います

  • telnet smtpの質問

    telnetでsmtpサーバーを繋がったあと、dataの後ろに入力したメッセージはどうしても終われない、新しい行に「.」ついても、終われない、困ってます。