CompuServe経由でNIFTYに発言をするには?No.01402
よこしま さん 99/03/06 21:07
 
こんにちは, 秀まるおさん.

NIFTYのFWINCOMで質問されたことなんですが,
僕の手にはおえないので, 相談にのって下さいませ.

コンピュサーブを経由して, NIFTYに接続した場合,
巡回はできるけど, 発言はできないという風に
林さんという方から質問がありました.
(秀まるおさんもこの間コメントをつけた方です)

で, 調べてみたところ, NIF.HSCの
自動発言でやると書き込みに成功して,
NIFTYエクスプローラ付属のNIFTY32.HSCの
自動発言でやると失敗するのでした.


「/POST」を送信したところで止まってしまうのです.


で, いろいろ調べてみると, 「/POSTを送ったのに
NIFTYからの反応がない」ということではなく,
はじめから「/POSTが送信されていない」ということが
わかってしまいました.


それどころか, 実は秀Termの画面上はきちんと送信されているように
見えるけど, 実際は送信されているのは一行目だけで,
他の行はまったく送信されていないということがわかってしまいました.

NIF.HSCと僕の作ったNIFTY32.HSCの違いは,
HIF.HSCが upload, none で一気に送信しているのに
対し, NIFTY32.HSCでは, 一行読んでは sendwrap #line + "^M" で
送信しているということです.


で, 結論ですが, sendwrap でテキストを送信すると
コンピュサーブ経由だとNIFTYに無視されてしまうんですけど
なんででしょう?

試しにNIF.HSCでコンピュサーブ経由で接続して,
そのあとNIFTY32.HSCの自動発言を呼び出しても
同じ現象になりました.

ということで, 僕の手にはおえないんですが
現象確認してもらないでしょうか?

よこしま

Send 99/03/06


[ ]
RE:01402 CompuServe経由でNIFTYに発言をNo.01403
よこしま さん 99/03/07 13:36
 
こんにちは, 秀まるおさん.

続報です.

コンピュサーブ経由でNIFTYに接続して
以下のスクリプトを実行してみました.

--------------------
send "SMAIL^M"
wait "本文(300 行まで 終了は行頭で/E)"
sendwrap "TO:BXI03636^M"
wait "^M"
sendwrap "SUB:TEST^M"
wait "^M"

##a = 1
beginloop
sendwrap ##a + "^M"
wait "^M" ;<= 一行ずつ確実に送信する
##a = ##a + 1
if(##a = 20)
        breakloop
endif
endloop

sendwrap "/POST^M"
return
-----------------------------

で送信画面は以下のようになりました.

> >SMAIL
> 本文(300 行まで 終了は行頭で/E)
> TO:BXI03636
> SUB:TEST
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
> 10
> 11
> 12
> 13
> 14
> 15
> 16
> 17
> 18
> 19
> /POST
>
> /e           <-------この行は手で入力した
> 76バイト 12行です
> 修正 (1:修正する 2:しない)
> :2
> 題名 (漢字で20文字まで)
> :222
> 確認 222 (1:OK  2:NG)
> :1
> 送信 (1:送信する 2:しない)
> :1
> −送信完了−
> >

で自分で受け取ってみました.

> MAIL>READ NEW
>
>  1    加藤俊直      BXI03636                          1999/03/07 13:17
>       題名:222
>
> 2
> 4
> 6
> 8
> 10
> 12
> 14
> 16
> 18
> /POST
>
> action:sav
> MAIL>

ということで, なんと一行おきに送信されていることが
わかりました. いったい何が起こっているのやら....?


よこしま

Send 99/03/07


[ ]
RE:01403 CompuServe経由でNIFTYに発言をNo.01404
秀まるお さん 99/03/08 10:17
 
 まいどどうも。こちらでもテストしてみます。

 ちなみに僕のnif.hscの場合ですが、ホストプロパティの中の「テキスト送信...」
の「同期を取らずに高速に送信」をOFFにしておけば、1行おきにゆっくり送信する
ようになります。

 どっちにしてもこちらでテストしてみます。


[ ]
RE:01404 CompuServe経由でNIFTYに発言をNo.01406
よこしま さん 99/03/08 23:23
 
こんにちは, 秀まるおさん.

> まいどどうも。こちらでもテストしてみます。

よろしくお願いします.

> ちなみに僕のnif.hscの場合ですが、ホストプロパティの中の「テキスト送
信...」
>の「同期を取らずに高速に送信」をOFFにしておけば、1行おきにゆっくり送信する
>ようになります。

実はこの変もいろいろいじったのですが,
ONにしておくとログインすらできないみたいで....
(つまりOFFです)


よこしま

Send 99/03/08


[ ]
RE:01406 CompuServe経由でNIFTYに発言をNo.01407
よこしま さん 99/03/08 23:31
 
> 実はこの変もいろいろいじったのですが,
> ONにしておくとログインすらできないみたいで....
> (つまりOFFです)

「エコーバック...」の方のことだったかもしれません。
不確かですみません.

よこしま

Send 99/03/08


[ ]
RE:01407 CompuServe経由でNIFTYに発言をNo.01408
秀まるお さん 99/03/09 12:31
 
 僕のマシンが既にモデムなしマシンになってた関係でテストが遅れてしまいました
が、先ほどテストが完了しました。

 やはり、一気にまとめて送信するとダメでした。しかし、1行づつ送信すればOK
のようです。

 というわけで、ホストプロパティの「テキスト送信...」で「同期を取らずに高速
に送信」をOFFにしておけば、少なくともNIF.HSCでの送信はうまく行くと思います。

 sendwrap文の場合だと、行が2行以上に折り返されてしまうことがあるので、単純


 sendwrap ....
 wait "^M"

 とやったのではうまく同期が取れないかもしれないです。CompuServe用にゆっくり
送信するようなオプションを用意するか、またはnif.hscみたいにupload文を使うよ
うにしないとダメかもしれないです。


[ ]
RE:01408 CompuServe経由でNIFTYに発言をNo.01410
よこしま さん 99/03/09 20:10
 
こんにちは, 秀まるおさん.

> sendwrap ....
> wait "^M"
>
> とやったのではうまく同期が取れないかもしれないです。CompuServe用にゆっくり
>送信するようなオプションを用意するか、またはnif.hscみたいにupload文を使うよ
>うにしないとダメかもしれないです。

実は昨日のうちに, 問い合わせして下さった方には
対処版を作ってメールで送ってしまいました.

NIFTYエクスプローラでは, メールはMail_Up.txt, その他は
Easy_Up.txtという名前のファイルに書くようになっているんですが,

CompuServe経由のときは, どっちも Forum_Up.txtにリネームして
NIF.HSCを呼び出してしまうという, 超ウルトラ手抜きの対処なのですが...(^^;


ということで, NIF.HSCでうまくいくのはわかっていたのですが,
ちょっと仕様上 upload文を使うっていう風には変更できないんです.

署名に送信時刻を挿入していたりする関係もあって....


で, お聞きしたかったのは, これはNIFTYが悪いのか,
それとも sendwrap のバグなのかということなんですが....

upload, none ではうまくいくけど sendwrap文でやると
一行おきに送信されるという怪現象は, どうも
理解不能でして....

ただ,

>AutoComも使っています。
>AutoComも現在の秀termと同じ動き
>(メールや発言で止まってしまう)をしますが、
>秀termもAutoComもメール受信は問題なくできます。

というご報告をいただいているんで, 秀Term固有の
問題ではないという気もするんですが....


よこしま

Send 99/03/09


[ ]
RE:01410 CompuServe経由でNIFTYに発言をNo.01412
秀まるお さん 99/03/10 13:57
 
> upload, none ではうまくいくけど sendwrap文でやると
> 一行おきに送信されるという怪現象は, どうも
> 理解不能でして....

 秀Term側は単純にシリアルポートにWriteFileを使って書き込むだけなので、つま
りそれが1行単位であれば問題ないけども、2行以上まとめてWriteFileするとおか
しくなるといううことだと思います。

 sendwrap文は、適当な位置に改行を入れる動作はしますけど、WriteFileを呼ぶ時
は一発でまとめて呼んでしまいます。それに対してupload文は確実に1行ごとに
WriteFileする動作となります。

 そういうことで理解して使うしかないと思います。


[ ]
RE:01412 CompuServe経由でNIFTYに発言をNo.01413
よこしま さん 99/03/10 17:58
 
こんにちは, 秀まるおさん.

> 秀Term側は単純にシリアルポートにWriteFileを使って書き込むだけなので、つま
>りそれが1行単位であれば問題ないけども、2行以上まとめてWriteFileするとおか
>しくなるといううことだと思います。
>
> sendwrap文は、適当な位置に改行を入れる動作はしますけど、WriteFileを呼ぶ時
>は一発でまとめて呼んでしまいます。それに対してupload文は確実に1行ごとに
>WriteFileする動作となります。
>
> そういうことで理解して使うしかないと思います。

詳しい説明どうもありがとうございました.
今後の参考にさせて頂きます.


よこしま

Send 99/03/10


[ ]