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
getservbynameが使えないみたいです.
cygwinのperlからもgetservbynameが使えませんでした.
# 他のWindowsマシンでは,cygwinのperlから使えましたが.
うーん,また再インストールなのか・・・.ありえん・・・.
当方もUnknown service “smtp”に遭遇してます。
WinXPSP2+Cygwin1.5.18-1
(setq wl-smtp-posting-port 25)やっても送信できず。
変えたのはCygwinだけなので怪しんでいるのですが、問題なかったVersionのCygwinはもう手元にない。(´,_ゝ`)プッ
コメント,ありがとうございます.
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
ポート番号を設定してもダメとのことで,症状がちょっと違うみたいですが,
同じような問題にぶち当たっている人がいて,少し落ち着きました.
メールが送信できるようになることをお祈りしております・・・.
直りました。
最新のwanderlust(stable 2.14.0)にしたら
(setq wl-smtp-posting-port 25)
を付ければ送信できました。
# 付けないとNG
おぉ,そういえばwanderlustのバージョンを書いてませんでしたね.
こちらも同じですかね.「Wanderlust/2.14.0 (Africa)」を使っています.
とりあえず,他に問題が見つからないので,継続利用していますが,
やっぱ気になりますね・・・.
既に前のVersionのCygwinが無いので当方は確認は取れませんが…
Wanderlustが見ている(?)と思われる/etc/sercivesって今の自分のPCのを見るとC:\WINDOWS\system32\drivers\etc\servicesのリンク(ショートカット)になってます。
実は以前のCygwinでは/etc/servicesってリンクではなくファイルその物だったって事はないですか?
で、windowsのショートカットだとリンク先のファイルが読み出せないとか…
# 完全に憶測ですが…
#!/usr/bin/perl -w
use strict;
my $port;
$port = getservbyname(‘smtp’, ‘tcp’);
print $port;
上記のようなPerlスクリプトを,
cygwinのPerlとActivePerl,それぞれ実行したところ,
両方ともエラーが出て動作しませんでした.
ちゃんと確認していないので,完全な推測になってしまいますが,
ActivePerlがcygwinの/etc/servicesを参照しているとは考えにくく思います.
Windows側で何か問題が起きているんじゃないかと・・・.
# うちの場合はハードウェア的なクラッシュも要素に入っているので,余計ややこしいですが・・・.
こんにちは。
WindowsXPでcygwinを使っていますが、同じ現象に遭遇しました。今まで問題なく使えていたftpやtelnetが突然”unknown service”と言われてしまいます。DOS窓から起動したftp.exeだと問題なく動作するので、明らかにcygwinの問題です。
色々調べてみたのですがまだ解決策は見つかっていません。何かわかったらお知らせします。
コメントありがとうございます.
たしかに,この現象に遭遇されている方は,みんなcygwin使いですし,cygwin犯人説が有力なんですかね.
試しにVisual Studio .NET 2003で,getservbyname関数を使って,ポート番号を取得するプログラムを,
自分は得意じゃないので,後輩に作ってもらったところ(笑),
プログラムを作成したWindowsマシンでは,無事ポート番号を取得できたのに対し,
僕のマシンでは,ポート番号を取得できませんでした.
つまり,cygwinと無関係に動作するプログラムでも,getservbyname関数が使えなくなっているのは間違いないです.
DOS窓のftp.exeが問題なく動作するのは,おそらくプログラムの内部で,固定的にポート番号を指定しているのかもしれない,と勝手に憶測してます.
うちではcygwinの外で動作するMeadowでもgetservbyname関数が使えなくなっているみたいですし.
まぁ,いろいろと検証したところで,cygwinユーザ以外に同じ症状の人を見つけない限り,
cygwinを入れたことによって,getservbyname関数が使えなくなっている,という可能性は相変わらず有力なわけですが・・・.
getservbynameが使えなくなる問題解決!
長い戦いに終止符が打たれました.getservbyname関数が使えない日々がつ…
解決しました!詳細はこちら
http://nao.river24.net/blog/entry/20051105023607
犯人はなんとMSN Messenger 7.5の診断ツール・・・.