電子署名付きメールの添付の際動作異常?No.39737
KRHR さん 10/12/20 19:35
 
 電子署名付きのメールで、添付ファイル操作時に、Outlookや
Thunderbirdで添付ファイルを参照できない現象が発生します。
 詳細は下記の通りです。
 
 01) 現象
   ・秀丸メールからeml(ファイルA添付)と、さらにファイルBを
    添付して送信した時、他のメールクライアント
    (Outlook やThunderbird)で受信した場合
    添付されたファイルBを参照できない。
   ・Outlook側では、電子署名に関する下記のエラーも
    表示される。
     --------------------------------ここから
     このメッセージの内容に変更が加えられている可能性が
     あります。
     --------------------------------ここまで

 02) 発生条件
   下記の条件を全て満たすと必ず発生する。
   --------------------------------ここから
   a) 秀丸メール側で、ファイルAを添付したメールに
    電子署名をつけて送信する。
   b) a)のメールを送信済みフォルダから新規メールに
    D&D(emlを添付)した後に、さらに2個目のファイルBを
    添付して、最後に電子署名をつけて送信する。
     → eml とファイルBが添付された状態。
   c) b)で送信されたメールを、Outlook、または、Thunderbirdで
    受信する
   --------------------------------ここまで
    → なお、a) と b) の両方で電子署名をつけた場合に
      今回の現象が発生します。どちらか一報に電子署名が
      ついていない場合は、発生しないようです。

 03) Outlook での見え方
   02-b) で送信されたメールを受信すると、下記のように見える。
    --------------------------------ここから
     ・添付されたメール(eml)に含まれているはずの
      ファイルAが、添付ファイルとして表示されている
     ・ファイルBの存在は見えない。
     (添付されていないように見える)
    --------------------------------ここまで

 04) 補足
  04-01) 02-b) のeml ファイルをOutlookに添付して、同様の操作を
     実行すると問題無く、ファイルBを参照できる。
  04-02) Outlookだけでなく、Thunderbirdでも、ファイルBが
     参照できない現象が発生するようです。
  04-03) Becky Internet Mail や 秀丸メールでは、この現象は
     発生しません。

 送信側(秀丸メール)が悪いのか、OutlookやThunderbirdが悪いのか
はっきりしませんが、電子署名がついていないときは問題が
発生しないので、送信側にも何らかの原因があるかもしれません。
 お手数をおかけして申し訳ありませんが、ご確認よろしくお願いいたします。

 
 以上です。

[ ]
RE:39737 電子署名付きメールの添付の際動No.39742
秀まるお2 さん 10/12/21 13:37
 
 詳しい情報ありがとうございます。&、バグでお手数かけてすみません。

 OutlookやThunderbirdを使うテストの前に、まずは秀丸メールの中だけでテス
トしてみたんですけど、たしかにおかしいです。マルチパートMIME用の区切り文
字列がおかしいです。

 今回のケースだと4重のマルチパートになるんですけども、それの2重目と3
重目のマルチパート区切り文字列がまったく同じになってしまってるようです。

 さっそく修正させていただきます。直ったらThunderbird等でもテストしてみ
ます。

 V5.60β7にて対応させていただきます。

[ ]
RE:39742 電子署名付きメールの添付の際動No.39744
KRHR さん 10/12/21 19:59
 
> さっそく修正させていただきます。直ったらThunderbird等でもテストしてみ
>ます。
>
> V5.60β7にて対応させていただきます。


 素早い回答ありがとうございます。問題が判明して良かったです。
修正版が公開されましたら、当方でも動作検証して結果を
ご報告する事にします。

以上です。


[ ]
RE:39744 電子署名付きメールの添付の際動No.39747
秀まるお2 さん 10/12/22 18:14
 
 先ほどV5.60β7をアップロードしました。

 ThunderbirdとOutlook 2003で検証した限りはうまく動作するようになったと
思います。ただし、Thunderbirdだと、添付ファイルの見え方がいまいちおかし
いです。(Becky!もだけど)

 例えば、Aというメールがあって、それにはBというメールが添付ファイルと
して付いていたとし、さらにそのBメールに別の添付ファイルが付いていた時に、
その添付ファイルがあたかもAメールの添付ファイルであるかのごとく表示され
てしまうようでした。

 AメールとBメールに両方とも同じ名前の添付ファイルが付いていると、同じ
名前の添付ファイルが2つ出てくるような表示になりました。(Becky!も)

 これはこれでそういう仕様なんだと思います。

 電子署名の検証の方はうまくいってると思います。

 ちなみにS/MIMEでしかテストしてませんでした。(今気づいたけど)

[ ]
RE:39747 電子署名付きメールの添付の際動No.39748
KRHR さん 10/12/22 22:41
 
素早い対応ありがとうございます。
早速、動作確認しようと思ったのですが、送信時に自動
実行するようにしてあるマクロの中で、エラーが発生してしまい
ました。

 01) 現象
  メール送信時に、「後で送信/今すぐ送信時」に登録してある
  マクロでエラーが発生する。
  具体的には、下記のエラーメッセージが表示されます。
    ---------------------------エラー内容ここから
     xxxxx.mac(8):式がおかしいです。
     または、このバージョンではこの式は使えません。
   
     キーワード/関数/式:}
    ---------------------------エラー内容ここまで
 02) 発生頻度
  「後で送信/今すぐ送信時」にマクロが登録されている状態で、
  メール送信をすると必ず発生する。
  マクロの登録を解除すると、エラーは発生せずメール送信できる。

 03) マクロの内容
  (マクロ概要)
    電子署名が着いたメールを転送するときのために、
    余計な電子署名を削除してから、電子署名をつけるかどうかの
    メニューを表示しています。
  具体的なマクロの内容は下記の通りです。
 ---------------------------マクロの内容 ここから
//      ・電子署名、電子署名+暗号化、電子署名無し を選択
//      ・送信先の確認表示

loaddll "tkinfo.dll";
if( dllfunc( "IsTuruKameMain" ) ) {
    message "このマクロは本体側では実行できません。";
    endmacro
}

// 電子署名を削除する ここから
        //     添付ファイルの数をチェックする
 #num = dllfunc("CountCurrentHeader", "X-Attach");
 if ( #num == 0 ) {
    goto Step2;
 }

 #i = 0 ;
 while ( #i < #num ) {
         //     添付ファイルの数だけループする
    $s = dllfuncstr("CurrentHeader2", "X-Attach", #i );
    $s2 = rightstr( $s , 9 );
    if ( $s2 == "smime.p7s" ) {
       #n = dllfunc("UndoAttach", $s );
    } else if ( $s2 == "smime.p7m" ) {
       #n = dllfunc("UndoAttach", $s );
    }
    #i = #i + 1;
 }

// 電子署名を削除する ここまで

Step2:
// 電子署名関連を選択させる ここから
menu "電子署名のみ", "電子署名+暗号化", "電子署名無し";
if ( result == 1 ) {
              //   電子署名のみの時
   $s = dllfuncstr("EncryptSign", 1, 2, 0, 1) ;
   if( $s == "" ) {
      #n = dllfunc("SetCancel", 1);
   }
}else if ( result == 2 ) {
              //   電子署名+暗号化の時
   $s = dllfuncstr("EncryptSign", 2, 2, 0, 1) ;
   if( $s == "" ) {
      #n = dllfunc("SetCancel", 1);
   }
}
// 電子署名関連を選択させる ここまで

// メール送信画面のTo: とCc: をハイライト表示する ここから

// #n = dllfunc("SwitchHeaderView", 1);
// setsearch "To:||Cc:", 0x2810 ;
// findup;
// hilightfound 1;

// メール送信画面のTo: とCc: をハイライト表示する ここまで

//question "このまま送信しますか?(送信画面でハイライト表示されている部分を
確認してください)";
// if( result != yes ) {
//              // キャンセルボタンが押されたときは、マクロを終了する
//      #n = dllfunc( "SetCancel", 1 );//送信中止
//      endmacroall;
// }

endmacro;
 ---------------------------マクロの内容 ここまで

 04) その他
  01) マクロを解除した状態での動作検証
    マクロを解除して、手動で電子署名を添付して簡単な
    動作検証したところ、ほかのメールクライアントで、
    問題なく動作しているようです。
    (ざっとやっただけなので、検証項目の抜けはあるかも)

  02) ベータ版の改版履歴には、マクロの仕様変更に関する記述は
    無さそうなので、動作検証に難儀しております。


 取り急ぎ、以上です。
 この情報で、マクロがエラーになっている原因がわかるでしょうか?

[ ]
RE:39748 電子署名付きメールの添付の際動No.39749
秀まるお2 さん 10/12/22 23:41
 
 テストありがとうございます。

 マクロがうまく動かない件ですが、8行目の

    endmacro

 の最後にセミコロンが抜けてるようです。

    endmacro;

 とすればうまく動くようです。

 昔の秀丸メールで動いていたということは、つまり、秀丸エディタV7.11では
セミコロン無しでエラーにならなかった所が、秀丸エディタV8.02になってから
はエラー扱いになってしまったってことなんだと思います。

 秀丸担当に相談して対応策を検討させていただきますが、とりあえずはセミコ
ロンを入れるということで回避の程お願いします。

>   02) ベータ版の改版履歴には、マクロの仕様変更に関する記述は
>     無さそうなので、動作検証に難儀しております。

 V5.60βになってから、秀丸エディタのV8.02相当とソースコード同期してまし
て、それでいくつか非互換とかレベルダウンのバグが出たりという可能性はあっ
たりします。
 (ちなみに秀丸メールV5.54以下では、秀丸エディタV7.11相当になってます)

 その辺お手数かけてすみませんが、秀丸エディタV8系用のマクロを使えるよう
にして欲しいというご要望も多数あるので、今の時期に対応したという状況にな
ってます。

[ ]
RE:39749 電子署名付きメールの添付の際動No.39751
KRHR さん 10/12/23 10:13
 
回答ありがとうございます。
途中のendmacroにセミコロンをつけることで、無事動作を
確認しました。
秀丸エディタとのソース同期の件、了解しました。
マクロの一部を修正すれば良いので、問題ないです。

なお、本来の動作検証ですが、再度実施しました。
ファイルが添付されているeml ファイルの中に
更に別のファイルが添付されたemlファイルを
複数添付(それぞれすべて電子署名付き)したメールを
別のメールクライアントソフトに送信して、相手側で
問題なくすべてを参照できることを確認いたしました。

対応ありがとうございました。

以上です。

[ ]
RE:39751 電子署名付きメールの添付の際動No.39761
秀まるお2 さん 10/12/24 11:20
 
 いろいろ確認ありがとうございます。

 endmacroでエラーが出る件については、秀丸エディタ/秀丸メール双方で、エ
ラーが出ないように修正させていただきます。

[ ]