Mac OS Xでメールが返信されない

[戻る]
dydrmflshbck 2007/02/15(木) 01:21:08
当方Mac OS Xで試用してみました。
HP-DP-CTRL.iniの設定を行った後携帯からメールを送信してみましたが、
返信メールが来ません。
pinkはメールは受け取れているようです。
(理由:携帯でメール送信後、httpの欄が緑になる)
ログを見ると日本語(?)の文字化けしており、何が起こっているのかがわかりませんでした。
(ログを見るのにはOSに付属している「コンソール」というアプリを使用)
Windows XPで同じHP-DP-CTRL.iniを用いて試してみたところ携帯でメールを送信後、ちゃんと返信メールが返ってきました。
JavaなのでMacでもOKと思っていたのですが、Macではやはり無理なのでしょうか?

YGG [E-Mail] [HomePage] 2007/02/16(金) 01:16:06

こんばんは。YGGです。

>dydrmflshbckさん

まず、Mac OS X での試用報告をありがとうございます。

結論から書きますと、現在 pink は Windows 以外のプラットフォームでは
動かないはずです。

白状しますが、実は pink は Windows 98SE/Me/2000/XP 以外での動作試験を
行っていません。また、pink はJavaで作成していますが、文字コードや
改行コードなどについては実行環境依存でコーディングしてしまっています。
つまり Windows で利用されることを前提にプログラムを書いています。
これは単純に pink 作成当時の私の知識不足によるものです。

Mac系での試用報告は今回初めて頂きました。大変興味深いです。

さて、問題についてです。
pink がMac OS X上でメールを受信できていること、また同じ設定ファイルを使って
WindowsXP上で正しく動作することから、原因はメール送信処理における
改行コードに関する実行環境依存の処理によるものと想像します。

私自身 Mac のことを何も知らないので間違っているかもしれませんが、
Mac は日本語のエンコードにShift-JIS、改行コードに CR を使っていたと
記憶しています。前述の通り、pink は実行環境依存のコーディングをして
しまっているので、SMTPに送信するコマンド(本来はCRLF区切り)を
OSの改行コードである CR 区切りで送ってしまっているのが原因だと考えます。

上記の考え方だと POP3 についても CRLF と送るべき改行コードを CR と
送ってしまっているはずなのですが、メールは受け取れているようですので
恐らくお使いのPOP3サーバが寛容な作り(間違ったプロトコルを解釈できる)
なのではないかと想像しています。

上記が原因だった場合、根本的な解決にはプログラムを修正するほかありません。
正確にはJavaの実行時に任意の改行コードを設定することで
対処できるはずなのですが、Mac上でこれを正しく設定する方法が私には判りません。
# ちなみに
# java -Dline.separator=\r\n -jar pink.jar >実行ログ.txt
# のように指定することで改行文字を任意に設定できるのですが、
# 正規表現を解釈しないようなので\r\nをどうやって設定すれば良いかが判りません。

この問題を解決するため pink を修正しようと考えています。
Mac の試験環境がないので手探りの修正になってしまうかもしれませんが、
気長にお待ちください。

ログが文字化けする件についても上記文字コードの問題だと思うのですが、
正確な原因が判りません。Javaが認識しているOSのエンコードとコンソールの
エンコードが違うためだとすれば、コンソールのエンコードをShift-JISに
変更することで正しく表示できる可能性があります。

★---------------------------------------------------------------------------------★
上記の方法でもまだ未解決の場合は、下記の「追加発言」で再度お知らせください。
解決(納得)した場合は「←解決時は質問者本人がここをチェックしてください。」に
チェックを入れ、解決した旨を投稿していただけるとありがたいです(^^
★---------------------------------------------------------------------------------★

dydrmflshbck 2007/02/18(日) 15:52:19
YGG様、丁寧なお返事ありがとうございます。

>>Mac は日本語のエンコードにShift-JIS、
>>改行コードに CR を使っていたと記憶しています。
私の知識不足のため確実とは言えませんが、
Mac OS XはUnixベースなので、確か日本語コードはEUCで
改行コードはLFだったと思います。
今調べた限りでは日本語コードはShiftJISでも大丈夫かもしれません。

>>この問題を解決するため pink を修正しようと考えています。
>>Mac の試験環境がないので手探りの修正になってしまうかもしれませんが、
>>気長にお待ちください。
ありがとうございます。気長に待ちます。
そのお気持ちが大変うれしいです。

>>コンソールのエンコードをShift-JISに
>>変更することで正しく表示できる可能性があります。
すいません。コンソールのエンコードを変更できました。
下記に示します。

>2007/02/18 15:37:41:サービスを起動しています...
>2007/02/18 15:37:41:サービス中は無効です。
>2007/02/18 15:37:41:サービスのポート 5901.
>2007/02/18 15:37:41:接続待ちタイムアウト 15分.
>2007/02/18 15:37:41:イメージのサイズ 240x320.
>2007/02/18 15:37:41:グローバルIPアドレスが見つからないため、ルータのIPアドレスを取得します。
>222.xxx.xxx.xxx
>220 smtp22.mail.bbt.yahoo.co.jp ESMTP
>451 See http://pobox.com/~djb/docs/smtplf.html.
>null
>メールの送信処理でI/O例外が発生しました(軽度障害)。
>2007/02/18 15:37:52:サービスは開始しました。
といった感じでした。

当方Javaの知識(というかプログラムの知識)はほとんどありませんが、
検証など私にできることがありましたら協力致します。

以上、宜しくお願い致します。

YGG [E-Mail] [HomePage] 2007/02/19(月) 01:41:40

こんばんは。YGGです。

>dydrmflshbckさん

ログなどの情報の書き込みをありがとうございました。
このログを見る限り、SMTPサーバとの接続が確立した後で
リクエスト処理中断のコード(451)が返却されていることから、
pink 側のリクエスト方法に不備があったと考えられます。

上記を踏まえて本件について改修してみました。
お時間のある時にでも Ver0.16.23.89(以降) をお試しください。

>Mac OS XはUnixベースなので、確か日本語コードはEUCで
>改行コードはLFだったと思います。

なるほど、そうだったんですか。不勉強でした。ありがとうございます。
今回私が試験した Vine Linux 3.2 はMac OS Xと同じEUCのLFなので、
正常に動作しなかった原因がこの点だけだったなら今回の対処で
動作するようになると思います。

>コンソールのエンコードを変更できました。

これで表示できたということは、Mac OS Xのエンコードは内部的にはEUCを使っていて、
表向きは(過去の資産を活用できるように)Shift-JIS、ということなのでしょうか。
この辺り色々カラクリがありそうですが、いつかMac OS Xを触る機会があったら
調べてみます。

>検証など私にできることがありましたら協力致します。

ありがとうございます。ではお言葉に甘えて、土日などお時間の
ある時で結構ですので、もしこの改修版で動作確認をして頂けたら
その結果を教えていただけると大変ありがたいです。

★---------------------------------------------------------------------------------★
上記の方法でもまだ未解決の場合は、下記の「追加発言」で再度お知らせください。
解決(納得)した場合は「←解決時は質問者本人がここをチェックしてください。」に
チェックを入れ、解決した旨を投稿していただけるとありがたいです(^^
★---------------------------------------------------------------------------------★

dydrmflshbck 2007/02/24(土) 01:39:57
[[解決]]
YGGさん、お返事ありがとうございます。

たった今動作確認してみたところ、
Ver0.16.23.89とMac OS Xの組み合わせで
メールが返信されることを確認しました。
メール返信後の動作も恐らく仕様通りに動いていると思います。

今回は本当にありがとうございました。
親切な対応大変うれしかったです。

以上、失礼致します。

追加発言
■ お名前(ペンネーム可)
  
■ メールアドレス(省略可、半角で入力)
  
■ ホームページアドレス(省略可、半角で入力)
  
■ 発言(エラー時再送信禁止)
  ←解決時は質問者本人がここをチェックしてください。
  
  

WwwLounge Ver2.16