- ベストアンサー
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"); となっています。ドメイン名が決めつめられてしまっていると思うのですが・・・。どういうことなのでしょう・・? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
その本は読んでいないので正確なところはわかりませんが、 TempHostという名前からして、「これの代わりに、あなたが使うホスト名を書いてください」という、仮の名前として書いてあるんじゃないですか?
その他の回答 (1)
- a-saitoh
- ベストアンサー率30% (524/1722)
サンプルコードですから,非実用的なコードをとりあえず乗せているのだと思いますよ.書籍タイトルとは矛盾していますが... HELOで伝えられるホスト名のFQDNが正しいかどうかチェックして嘘だったら接続を切る・・・・というようなMTA(SMTPサーバ)もあればチェックしないMTAもあります. とりあえずこのコードで動くのは動きますが,そのまま実用に供するのはマナー違反ですね.
お礼
回答ありがとうございます。 >HELOで伝えられるホスト名のFQDNが正しいかどうかチェックして嘘だったら接続を切る・・・・というようなMTA(SMTPサーバ)もあればチェックしないMTAもあります. なるほど~。。。
お礼
回答ありがとうございます。 なるほど、そうですか。安心しました。