|
skel.103Mです。いつもお世話になっております。 さて、 http://X68000.startshop.co.jp/~68user/Cgi-room/ の「MXレコードのお話」についてですが、質問させていただきたい ことがあります。 メールアドレスは、「{ユーザー名}@{ホスト名}」という構成をし ていますが、この{ホスト名}の部分に記述されたホストが実際に存 在する場合、即座に(MXレコードを参照せずに)そのホストに送ら れるのでしょうか。それとも、{ホスト名}に記述されたホストが実 際に存在したとしても、存在しないホストと同様に、まずMXレコー ドを参照し、その結果現れたホストに送られるのでしょうか。 先述したページを読むと、{ホスト名}の部分が存在しない場合に*のみ*、 MXレコードを参照し、その結果現れたホストに送られるものである、 と書いてあるように思えました。実際、これは(少なくとも私にとっ ては)直感に反しないことで、そうなのかなと納得してました。と ころが、某メーリングリスト宛てのメールが私に届きまして、ヘッ ダを見ると、To: の欄のメールアドレスのホスト名の部分(@より右側)が 実際に存在するホスト名であるにもかかわらず、Received: にその ホスト名が載ってない?!…ということがありましたので。 |
|
68user殿 ご指摘の通り、listenがthread safeかどうかが知りたかったわけです。 教えていただいたURL参考にさせていただき、もう一度調べ直してみて、分からなければ質問させていただきます。 また分かりましたら、報告させていただきます。 分かりにくい質問を投げてしまったけれど、お返事ありがとうございました。 ちなみに、OS:Windows 2000 でクラサバ開発しているのですが、私が使っているwinsock関連書籍で ”WinSock2.0プログラミング 発行:ソフトバンクパブリッシング” というのがあリます。もしwinsockを初めて使おうとしている方がいましたら一読すると良いかもしれません。 |
|
>>1978 skel.103M > この{ホスト名}の部分に記述されたホストが実際に存在する場合、 > 即座に(MXレコードを参照せずに)そのホストに送られるのでしょうか。 1. IP アドレス直接指定なら、直接 IP アドレス宛に送信 (Ex. To: foo@<127.0.0.1>) 2. 1 がダメで、MX が引けたなら、優先順位を考慮して MX 宛に送信 3. 2 がダメで、A レコードが引けたなら (=正引きできた)、A レコード宛に送信 という順序だと思います。なので、MX が優先ですね。 多分、ここらへんは RFC 2821 に書いてあると思います。 # http://ring.riken.go.jp/pub/doc/RFC/rfc2821.txt |
|
どうも、skel.103Mです。ご返答どうもです。 メールアドレスと送信先ホストの件、了解しました。私なりに調べた ところ、RFC2821の「5. Address Resolution and Mail Handling」で、 > are generally discouraged. The lookup first attempts to locate an MX > record associated with the name. If a CNAME record is found instead, > the resulting name is processed as if it were the initial name. If > no MX records are found, but an A RR is found, the A RR is treated as > if it was associated with an implicit MX RR, with a preference of 0, > pointing to that host. If one or more MX RRs are found for a given > name, SMTP systems MUST NOT utilize any A RRs associated with that > name unless they are located using the MX RRs; the "implicit MX" rule > above applies only if there are no MX records present. If MX records > are present, but none of them are usable, this situation MUST be > reported as an error. とありますね。なるほど。ちなみに、RFC974にも似たような記述があり ましたね(現在はHISTORICですけど) ただ、分からないのは、なぜこのように定められているのか、その理 由が私にはよく分かりません。。私には直感に反するように思うんで すが…… |
|
「ソースを表示してみよう」で、 http://www.chailien.com/ が、正常表示されません。 |
|
>>1981 skel.103M たとえば UNIX マシンが数百台あるような環境があるとして、 % hostname host123.example.ac.jp % whoami user のとき % echo | mail foo@bar などとすると、 From: user@host123.example.ac.jp なメールが foo@bar 宛に届きます。 このままリプライをすると host123.example.ac.jp 宛に メールが送られますが、数百台全てのマシンに SMTP サーバを立ち上げておくのは現実的ではありません。 で、それらの MX を mail.example.ac.jp に指定しておけば、 From: user@host123.example.ac.jp であっても MX 宛に届きます。もちろんその際には MX レコードが A レコードより優先されなければいけません。 …という感じで僕は理解しておりますが、いかがでしょうか。 >>1982 匿名 どうもです。直しました。 |
|
skel.103Mです。68user様、ご返答どうもです。 >>1983 68user なるほど!よく分かりました。 そこで、実際にそうなっていることを確かめるために、某ネットの (すなわち大学以外の)マシンを使って以下の要領で実験を行って みました。 ・送信元ホスト:test.bounet.net ・宛先メールアドレス:s1080224@exist.u-aizu.ac.jp 正式なメールアドレスではなく、@の右側を実際に存在するホスト 名に改竄。 結果は以下のようになりました: ---------- 1. まずMXレコードを調べておく。 →@exist.u-aizu.ac.jpのアドレスに対応するMXレコードは mailhost.u-aizu.ac.jpである。 [bounet] % nslookup Default Server: localhost Address: 127.0.0.1 > set q=mx > exist.u-aizu.ac.jp. Server: localhost Address: 127.0.0.1 Non-authoritative answer: exist.u-aizu.ac.jp preference = 10, mail exchanger = mailhost.u-aizu.ac.jp Authoritative answers can be found from: …(省略)… [bounet] % 2. メールを送信。 [bounet] % telnet localhost 25 Trying 127.0.0.1... Connected to localhost.bounet.net. Escape character is '^]'. 220 test.bounet.net ESMTP Sendmail 8.11.3/***************; Thu, 24 May 2001 20:47:40 +0900 (JST) EHLO localhost 250-test.bounet.net Hello localhost.bounet.net [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-SIZE 250-DSN 250-ONEX 250-ETRN 250-XUSR 250 HELP MAIL FROM: testerz@bounet.net 250 2.1.0 testerz@bounet.net... Sender ok RCPT TO: s1080224@exist.u-aizu.ac.jp 250 2.1.5 s1080224@exist.u-aizu.ac.jp... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Subject: test X-Mailer: telnet JiKaUcHi (^^;;; This is a test mail. . 250 2.0.0 f4OBm4K02587 Message accepted for delivery quit 221 2.0.0 test.bounet.net closing connection Connection closed by foreign host. [bounet] % 3. 送信ログを確認する。 →配送先はexist.u-aizu.ac.jpでは*なく*、MXレコードとして指定され ているホストmailhost.u-aizu.ac.jpに配送された。 May 24 20:50:34 test sendmail[2587]: f4OBm4K02587: from=testerz@bounet.net, size=**, class=0, nrcpts=1, msgid=<200105241149.f4OBm4K02587@test.bounet.net>, proto=ESMTP, daemon=Daemon0, relay=localhost.bounet.net [127.0.0.1] May 24 20:50:41 test sendmail[2596]: f4OBm4K02587: to=s1080224@exist.u-aizu.ac.jp, ctladdr=testerz@bounet.net (****/****), delay=00:01:22, xdelay=00:00:07, mailer=esmtp, pri=30069, relay=mailhost.u-aizu.ac.jp. [163.143.1.43], dsn=2.0.0, stat=Sent (UAA23329 Message accepted for delivery) ---------- たしかに、MXレコードがAレコードより優先されていますね。 どうもありがとうございました。 これからもよろしくお願いします! |
|
お久しぶりです。 ちょっと思うところがあって、掲示板の検索をしたのですが、ふと疑問が出てきました。 http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard/namazu.cgi?query=http&whence=0&max=20&result=normal&sort=score とかしますと、>とか<とか"とかが、>とか<とか"e;と表示 されるみたいです。これは、仕様ですか? あと、同じページの最後に、webmaster@www2.startshop.co.jp と ありますが、このwww2は、http://x68000.startshop.co.jp/~68user/ から推測するに、間違いなのではないですか? 違ったら済みません。 |
|
初めて書き込みさせていただきます。 和文で,改行を空白に置換する方法を ご存知の方はいないでしょうか。 例) おはよう こんにちは こんばんは ↓ おはよう こんにちは こんばんは 目的は,ウェブページのフォームから送られた文章を, 表示するページの都合で,改行無しの文に変更することです。 よろしくお願いいたします。 |
|
>>1986 椎 HTMLならば加工するまでも無く改行が無視されますが? |
|
>>1985 へにか > >とか<とか"e;と表示されるみたいです。これは、仕様ですか? いえ、正しくは < > " と表示されるべきです。この掲示板の データ用の文書フィルタ http://www.namazu.org/doc/manual.html#doc-filter を作成したのですが、それが不十分な状態です。 > あと、同じページの最後に、webmaster@www2.startshop.co.jp と > ありますが こちらも正しくは 68user@X68000.startshop.co.jp です。これは… どこで設定するんだっけ。なんかコンパイル時に埋め込まれるような 気がしないでもないなぁ。 両方とも調べて直しておきます。ご指摘ありがとうございました。 >>1986 椎 > 目的は,ウェブページのフォームから送られた文章を, > 表示するページの都合で,改行無しの文に変更することです。 ちゃんと使っている環境を書きましょう。perl なら $str =~ s/\r\n|\n/ /g (半角空白に置換したい場合) $str =~ s/\r\n|\n/ /g (全角空白に置換したい場合) でしょうか。 |
|
初めて書き込みします。 UNIXのシステム音のビープ音の音量を大きくしたいのですが、どうすれば いいのでしょう。CDEデスクトップツールでビープ音の調整というのがあっ たのですが、その最大値よりもさらに大きくしたいと思ってます。 このビープ音は内部スピーカーから鳴っている様で、もし音量を調整でき ないのであれば内部スピーカーを外部スピーカーに切り替える方法を知り たいのですが、誰か分かる人いませんか。 どうぞよろしくお願いします。 |
|
いつも困ったときばかり相談ですみません。 #! perl ... for (sort {&year($b) <=> &year($a)} glob './bank*.txt') { my $foooo = &year($_); warn ":::: [$idat2] vs [$foooo]"; if ($idat >= $foooo) { warn "!!!!:::: [$idat2] >= [$foooo]"; open BANK, $_ or die "can't open $_ because $!"; last; } } という文が CGI の中にあって、 エラーログに :::: [20010730] vs [20010701] at /html/cgi-bin/foo.cgi line 319. :::: [20010730] vs [20010601] at /html/cgi-bin/foo.cgi line 319. :::: [20010730] vs [00000000] at /html/cgi-bin/foo.cgi line 319. !!!!:::: [20010730] >= [00000000] at /html/cgi-bin/foo.cgi line 321. と出ます。 20010730 対 20010701 の時点で 20010730 が勝つと思うのに納得いきません。 助けてください〜 |
|
試みに s/>=/ge/ してみたら(ゼロづめなので文字として比較しても同じかと思って)、 :::: [20010530] vs [20010701] at /html/cgi-bin/foo.cgi line 319. !!!!:::: [20010530] ge [20010701] at /html/cgi-bin/foo.cgi line 321. だそうです。(T.T) |
|
すっすいませんでした。 過去の2発言、忘れてください。 (文字面で、もういきなりバグってます) |
|
>>1987 通りすがり > HTMLならば加工するまでも無く改行が無視されますが? すみません。意味がわかりませんでした。 >>1988 68user > ちゃんと使っている環境を書きましょう。 すみません,忘れていました。 使い方も読んでいなくて,申し訳ありませんでした。今後は気を付けます。 ご推察の通り,環境はperlです。 $str =~ s/\\n/ /g なんて自分で書いて試してみたらできなかったので 書き込ませていただいたのです。 今回, $str =~ s/\r\n|\n/ /g で,試してみたのですが,上手くいきませんでした。 でも,基本的に考え方は間違っていなかったようだと わかったので助かりました。 もしかしたら,プログラムの他の部分に問題があるのかもしれません。 チェックし直してから,報告させていただきます。 |
|
このページは、めちゃくちゃためになりますね。 今後も参考になることをやってくれるとありがたいっす。 |