MozillaZine.jp フォーラム
https://forums.mozillazine.jp/

コマンドラインから全角文字を含む添付ファイル名を指定した場合にうまく添付できません
https://forums.mozillazine.jp/viewtopic.php?f=3&t=7303
ページ 11

作成者:  hata [ 2008年4月21日(月) 12:48 ]
記事の件名:  コマンドラインから全角文字を含む添付ファイル名を指定した場合にうまく添付できません

hataです。
初めて投稿させていただきます。

Excel VBAのshell()関数からの利用を想定して、WindowsXPのコマンドプロンプト
で色々と試しております。

(thunderbirdのバージョンは2.0.0.9です)

thunderbird.exe -compose "to=hoge@hoge.jp,attachment=file:///C:/filename.txt"

のようなコマンドラインで添付ファイルの指定が出来ることが確認できました。

しかし、filenameまたはパスが"添付.txt"のように全角文字を含むとうまく添付できません。

(A)添付.txt
(B)%1B$BE%3AIU%1B%28B.txt
(C)%93%59%95%74.txt
(D)=?ISO-2022-JP?B?GyRCRTpJVRsoQi50eHQ=?=

のように表現を色々と変えて試すのですが、
どれも、保存や送信ができません。

下書き保存エラー
一時ファイルC:\を開くことができませんでした。"一時ディレクトリ"の設定を確認してください。

のようなダイアログが表示されます。

(A),(C)は添付アイコンに正しいファイル名が表示され、
(C)のみが右クリックで添付ファイルを開くことはできます。

指定方法(エンコード)やthumderbirdの設定など何か正しく添付する
方法がございましたらご教示いただけましたら助かります。

なお、ASCII文字のみのファイル名では正常に保存や送信ができます。

:(

作成者:  Cai [ 2008年4月21日(月) 14:41 ]
記事の件名:  Re: コマンドラインから全角文字を含む添付ファイル名を指定した場合にうまく添付できません

うーん、たしかに shift_jis でエンコードすると添付はできて開くこともできますが、保存・送信ができませんね...
保存・送信時の Base64 エンコードでコケてるのかなぁという気がします。
当面の回避策としてはやはり ascii の範囲でファイル名をつけるか、zip あたりで圧縮して ascii な名前にして送信、受信側で展開、といったところでしょうか。
もう少し調べてみます。

作成者:  hata [ 2008年4月21日(月) 15:16 ]
記事の件名:  Re: コマンドラインから全角文字を含む添付ファイル名を指定した場合にうまく添付できません

hataです。

早速のご確認・返信を戴きありがとうございました。

>ascii の範囲でファイル名をつける

ということは私も考えてみたのですが、

c:\添付\test.txt

のようにファイルのパスに全角文字を
含んでいてもファイルに到達できないみたいなんです。
(同様に作成ウィンドで添付ファイルのアイコンを開くことは可能ですが、
保存などはできません。)

これは「C:\添付」を環境変数に代入して

 set test=C:\添付
 thunderbird.exe -compose "to=hoge@hoge.jp,attachment=file:///%test%/test.txt"

のようにしてもNGですので、一旦環境変数tempディレクトリに
Ascii文字だけの名前のzipファイルを作成して添付後削除する
ような形でも、%temp%が展開された時に全角文字…すなわち
Windowsのアカウント作成でユーザー名に全角文字を使った人
にはうまく逃げられない場合なども危惧しています。

存在するドライブレター(NEC98ではCドライブの存在は確約できない)
を点検してそのルートディレクトリに一時ファイルを作ればできなくも
無いのでしょうが、私がThunderbirdの使い方を充分に理解しきれていない
だけであれば、正しい使い方で実装したいという願いがありました。

※ Excel VBAに組み込んだ時には利用者の環境は不特定であることを
  想定しています。

※ 圧縮dllはExcel VBAから呼び出すように既に実装していますが、
  ファイル名の部分は元ファイルと同じにするような仕様にしていて、
  ランダムな文字列や日付文字列のファイル名を生成させるのも可能では
  ありますが、できれば…。

その他、本当に

 (1)C:\添付.txt
 (2)C:\%93%59%95%74.txt

の2つのファイル(名前が違うだけで中身は同じ)を用意して

 thunderbird.exe -compose "to=hoge@hoge.jp,attachment=file:///C:\%93%59%95%74.txt"

を実行しても保存などはできないようです。(2)はASCIIファイル名なのですが…。
(保存・送信では(2)が使われて、作成ウィンドウで「開く」場合は(1)が使われることを
期待したトリックを仕組んだつもりだったのですが…)

ページ 11 All times are UTC + 9 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/