• ベストアンサー

SMTPのやりとりの最初の「HELO ..」について。

javaでネットワークプログラミングを学んでいるものです。「EclipseによるJava実用プログラミング」という本で学んでいます。https://products.locus.co.jp/index.php3 こちらでコードはダウンロードできます。 SMTPで最初に行う処理はクライアントが「HELO 自分のドメイン名」を送信することだと思うのですが(そう書いてあるのですが)、第6章のネットワーキングの章のサンプルではそうなっているのですが、9章のメーラ実装のところではその部分のコードは OutputStream os = s.getOutputStream(); PrintWriter out = new PrintWriter(new OutputStreamWriter(os), true); out.println("HELO TempHost"); となっています。ドメイン名が決めつめられてしまっていると思うのですが・・・。どういうことなのでしょう・・? よろしくお願いします。

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

  • ベストアンサー
noname#49664
noname#49664
回答No.1

その本は読んでいないので正確なところはわかりませんが、 TempHostという名前からして、「これの代わりに、あなたが使うホスト名を書いてください」という、仮の名前として書いてあるんじゃないですか?

rapun
質問者

お礼

回答ありがとうございます。 なるほど、そうですか。安心しました。

その他の回答 (1)

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.2

サンプルコードですから,非実用的なコードをとりあえず乗せているのだと思いますよ.書籍タイトルとは矛盾していますが... HELOで伝えられるホスト名のFQDNが正しいかどうかチェックして嘘だったら接続を切る・・・・というようなMTA(SMTPサーバ)もあればチェックしないMTAもあります. とりあえずこのコードで動くのは動きますが,そのまま実用に供するのはマナー違反ですね.

rapun
質問者

お礼

回答ありがとうございます。 >HELOで伝えられるホスト名のFQDNが正しいかどうかチェックして嘘だったら接続を切る・・・・というようなMTA(SMTPサーバ)もあればチェックしないMTAもあります. なるほど~。。。

関連するQ&A