2005年09月04日(日)

Unknown service "smtp"

コンピュータに関するりばにしの記事

Meadow上のWanderlustからメールを送信しようとしたところ,送信できない.

Unknown service "smtp"

「smtp」というサービス名から,ポート番号を取得することができないらしい.このとき調べて初めて知ったんですが,Windowsにも「/etc/services」に相当するものが存在するんですね.でも,そのファイルにも「smtp」は「25/tcp」と書いてある・・・.うーむ,参ったなぁ・・・.

とりあえず送信したかったので,「~/.wl」に以下のように書いて切り抜けました.

(setq wl-smtp-posting-port 25)

でも,なんかすっきりしない.まさかスパイウェアとかに感染してしまって,サービス名からポート番号を取得する部分が汚染されているのか?すごく心配.Spybotのチェックはセーフだったけど.

2005年09月04日18時33分 | Permalink
Trackback
Trackback URL
Comment

getservbynameが使えないみたいです.
cygwinのperlからもgetservbynameが使えませんでした.
# 他のWindowsマシンでは,cygwinのperlから使えましたが.
うーん,また再インストールなのか・・・.ありえん・・・.

りばにし at 2005年09月04日23時27分

当方もUnknown service “smtp”に遭遇してます。
WinXPSP2+Cygwin1.5.18-1
(setq wl-smtp-posting-port 25)やっても送信できず。
変えたのはCygwinだけなので怪しんでいるのですが、問題なかったVersionのCygwinはもう手元にない。(´,_ゝ`)プッ

通りすがり at 2005年09月28日15時39分

コメント,ありがとうございます.

cygwinが怪しいですか・・・うーむ.
こちらの環境は以下の通りです.
WindowsXP Professional SP2
CYGWIN_NT-5.1 silverzero 1.5.18(0.132/4/2) 2005-07-02 20:30 i686 unknown unknown Cygwin

ポート番号を設定してもダメとのことで,症状がちょっと違うみたいですが,
同じような問題にぶち当たっている人がいて,少し落ち着きました.
メールが送信できるようになることをお祈りしております・・・.

りばにし at 2005年09月28日17時17分

直りました。
最新のwanderlust(stable 2.14.0)にしたら
(setq wl-smtp-posting-port 25)
を付ければ送信できました。
# 付けないとNG

通りすがり at 2005年09月28日19時13分

おぉ,そういえばwanderlustのバージョンを書いてませんでしたね.
こちらも同じですかね.「Wanderlust/2.14.0 (Africa)」を使っています.
とりあえず,他に問題が見つからないので,継続利用していますが,
やっぱ気になりますね・・・.

りばにし at 2005年09月28日20時55分

既に前のVersionのCygwinが無いので当方は確認は取れませんが…
Wanderlustが見ている(?)と思われる/etc/sercivesって今の自分のPCのを見るとC:\WINDOWS\system32\drivers\etc\servicesのリンク(ショートカット)になってます。
実は以前のCygwinでは/etc/servicesってリンクではなくファイルその物だったって事はないですか?
で、windowsのショートカットだとリンク先のファイルが読み出せないとか…
# 完全に憶測ですが…

通りすがり at 2005年09月28日21時05分

#!/usr/bin/perl -w

use strict;

my $port;
$port = getservbyname(‘smtp’, ‘tcp’);
print $port;

上記のようなPerlスクリプトを,
cygwinのPerlとActivePerl,それぞれ実行したところ,
両方ともエラーが出て動作しませんでした.
ちゃんと確認していないので,完全な推測になってしまいますが,
ActivePerlがcygwinの/etc/servicesを参照しているとは考えにくく思います.
Windows側で何か問題が起きているんじゃないかと・・・.
# うちの場合はハードウェア的なクラッシュも要素に入っているので,余計ややこしいですが・・・.

りばにし at 2005年09月29日04時08分

こんにちは。

WindowsXPでcygwinを使っていますが、同じ現象に遭遇しました。今まで問題なく使えていたftpやtelnetが突然”unknown service”と言われてしまいます。DOS窓から起動したftp.exeだと問題なく動作するので、明らかにcygwinの問題です。

色々調べてみたのですがまだ解決策は見つかっていません。何かわかったらお知らせします。

通りすがり2 at 2005年11月03日13時51分

コメントありがとうございます.

たしかに,この現象に遭遇されている方は,みんなcygwin使いですし,cygwin犯人説が有力なんですかね.

試しにVisual Studio .NET 2003で,getservbyname関数を使って,ポート番号を取得するプログラムを,
自分は得意じゃないので,後輩に作ってもらったところ(笑),
プログラムを作成したWindowsマシンでは,無事ポート番号を取得できたのに対し,
僕のマシンでは,ポート番号を取得できませんでした.
つまり,cygwinと無関係に動作するプログラムでも,getservbyname関数が使えなくなっているのは間違いないです.

DOS窓のftp.exeが問題なく動作するのは,おそらくプログラムの内部で,固定的にポート番号を指定しているのかもしれない,と勝手に憶測してます.
うちではcygwinの外で動作するMeadowでもgetservbyname関数が使えなくなっているみたいですし.

まぁ,いろいろと検証したところで,cygwinユーザ以外に同じ症状の人を見つけない限り,
cygwinを入れたことによって,getservbyname関数が使えなくなっている,という可能性は相変わらず有力なわけですが・・・.

りばにし at 2005年11月03日17時06分

getservbynameが使えなくなる問題解決!

長い戦いに終止符が打たれました.getservbyname関数が使えない日々がつ…

HeavenWolf at 2005年11月05日02時54分

解決しました!詳細はこちら
http://nao.river24.net/blog/entry/20051105023607
犯人はなんとMSN Messenger 7.5の診断ツール・・・.

りばにし at 2005年11月05日03時00分
Comment Form