68user's page 掲示板

Prev< No. 1978〜1994> Next  [最新発言に戻る] [過去ログ一覧]
No. 1978 # skel.103M [E-mail] 2001/05/22 (火) 23:34:53
skel.103Mです。いつもお世話になっております。

さて、
http://X68000.startshop.co.jp/~68user/Cgi-room/
の「MXレコードのお話」についてですが、質問させていただきたい
ことがあります。

メールアドレスは、「{ユーザー名}@{ホスト名}」という構成をし
ていますが、この{ホスト名}の部分に記述されたホストが実際に存
在する場合、即座に(MXレコードを参照せずに)そのホストに送ら
れるのでしょうか。それとも、{ホスト名}に記述されたホストが実
際に存在したとしても、存在しないホストと同様に、まずMXレコー
ドを参照し、その結果現れたホストに送られるのでしょうか。

先述したページを読むと、{ホスト名}の部分が存在しない場合に*のみ*、
MXレコードを参照し、その結果現れたホストに送られるものである、
と書いてあるように思えました。実際、これは(少なくとも私にとっ
ては)直感に反しないことで、そうなのかなと納得してました。と
ころが、某メーリングリスト宛てのメールが私に届きまして、ヘッ
ダを見ると、To: の欄のメールアドレスのホスト名の部分(@より右側)が
実際に存在するホスト名であるにもかかわらず、Received: にその
ホスト名が載ってない?!…ということがありましたので。

No. 1979 # isaq 2001/05/23 (水) 11:45:13
68user殿

ご指摘の通り、listenがthread safeかどうかが知りたかったわけです。
教えていただいたURL参考にさせていただき、もう一度調べ直してみて、分からなければ質問させていただきます。
また分かりましたら、報告させていただきます。
分かりにくい質問を投げてしまったけれど、お返事ありがとうございました。

ちなみに、OS:Windows 2000 でクラサバ開発しているのですが、私が使っているwinsock関連書籍で
”WinSock2.0プログラミング 発行:ソフトバンクパブリッシング”
というのがあリます。もしwinsockを初めて使おうとしている方がいましたら一読すると良いかもしれません。

No. 1980 # 68user 2001/05/23 (水) 12:15:58
>>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

No. 1981 # skel.103M [E-mail] 2001/05/23 (水) 16:12:26
どうも、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ですけど)

ただ、分からないのは、なぜこのように定められているのか、その理
由が私にはよく分かりません。。私には直感に反するように思うんで
すが……

No. 1982 # 匿名 2001/05/24 (木) 19:34:23
「ソースを表示してみよう」で、
http://www.chailien.com/
が、正常表示されません。

No. 1983 # 68user 2001/05/24 (木) 20:14:24
>>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 匿名
どうもです。直しました。

No. 1984 # skel.103M [E-mail] 2001/05/24 (木) 21:45:19
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レコードより優先されていますね。

どうもありがとうございました。
これからもよろしくお願いします!

No. 1985 # へにか [URL] 2001/05/26 (土) 01:10:55
お久しぶりです。

ちょっと思うところがあって、掲示板の検索をしたのですが、ふと疑問が出てきました。

http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard/namazu.cgi?query=http&whence=0&max=20&result=normal&sort=score
とかしますと、>とか<とか"とかが、&gt;とか&lt;とか&quote;と表示
されるみたいです。これは、仕様ですか?

あと、同じページの最後に、webmaster@www2.startshop.co.jp と
ありますが、このwww2は、http://x68000.startshop.co.jp/~68user/
から推測するに、間違いなのではないですか? 違ったら済みません。

No. 1986 # 2001/05/26 (土) 15:34:16
初めて書き込みさせていただきます。

和文で,改行を空白に置換する方法を
ご存知の方はいないでしょうか。

例)
おはよう
こんにちは
こんばんは

おはよう こんにちは こんばんは


目的は,ウェブページのフォームから送られた文章を,
表示するページの都合で,改行無しの文に変更することです。

よろしくお願いいたします。

No. 1987 # 通りすがり 2001/05/27 (日) 11:51:35
>>1986
HTMLならば加工するまでも無く改行が無視されますが?

No. 1988 # 68user 2001/05/27 (日) 19:51:08
>>1985 へにか
> &gt;とか&lt;とか&quote;と表示されるみたいです。これは、仕様ですか?
いえ、正しくは < > " と表示されるべきです。この掲示板の
データ用の文書フィルタ
    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 (全角空白に置換したい場合)
でしょうか。

No. 1989 # gooo 2001/05/30 (水) 10:30:04
初めて書き込みします。

UNIXのシステム音のビープ音の音量を大きくしたいのですが、どうすれば
いいのでしょう。CDEデスクトップツールでビープ音の調整というのがあっ
たのですが、その最大値よりもさらに大きくしたいと思ってます。

このビープ音は内部スピーカーから鳴っている様で、もし音量を調整でき
ないのであれば内部スピーカーを外部スピーカーに切り替える方法を知り
たいのですが、誰か分かる人いませんか。

どうぞよろしくお願いします。

No. 1990 # ふくし 2001/05/30 (水) 15:52:58
いつも困ったときばかり相談ですみません。

#! 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 が勝つと思うのに納得いきません。
助けてください〜

No. 1991 # ふくし 2001/05/30 (水) 16:10:46
試みに 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)

No. 1992 # ふくし 2001/05/30 (水) 17:42:11
すっすいませんでした。
過去の2発言、忘れてください。
(文字面で、もういきなりバグってます)

No. 1993 # 2001/05/30 (水) 22:45:51
>>1987 通りすがり
> HTMLならば加工するまでも無く改行が無視されますが?
すみません。意味がわかりませんでした。

>>1988 68user
> ちゃんと使っている環境を書きましょう。
すみません,忘れていました。
使い方も読んでいなくて,申し訳ありませんでした。今後は気を付けます。
ご推察の通り,環境はperlです。
$str =~ s/\\n/ /g
なんて自分で書いて試してみたらできなかったので
書き込ませていただいたのです。
今回,
$str =~ s/\r\n|\n/ /g
で,試してみたのですが,上手くいきませんでした。
でも,基本的に考え方は間違っていなかったようだと
わかったので助かりました。
もしかしたら,プログラムの他の部分に問題があるのかもしれません。
チェックし直してから,報告させていただきます。

No. 1994 # PC歴5ヶ月 2001/05/31 (木) 15:27:32
このページは、めちゃくちゃためになりますね。
今後も参考になることをやってくれるとありがたいっす。

Prev< No. 1978〜1994> Next  [最新発言に戻る] [過去ログ一覧]