マクロで送信エラーを知るには?No.01539
山紫水明 さん 08/12/04 17:38
 

秀まるおさん,

 次のようなマクロを準備して新規作成メールを送信します。
//-----------------------------------------//
loaddll "TKInfo.dll";
#n = dllfunc("SendNow");
#n = dllfunc("SetMainWndTop");
message str(dllfunc("TransmitError"));
message str(dllfunc( "SentMailCount" ));
endmacro;
//-----------------------------------------//

送信に成功した時のそれぞれの値は,0, 0 です。
次にパソコンから LAN ケーブルを取り外して同じことを実行します。
送信のエラー表示が出ますが,この場合もそれぞれの値は,0, 0 で違いがあり
ません。これは仕様でしょうか?
 もしそうだとすれば,サーバーエラーによって送信できなかった場合に,それ
を知るにはどうしたらよろしいのでしょうか?

              山紫水明

[ ]
RE:01539 マクロで送信エラーを知るには?No.01541
秀まるお さん 08/12/04 18:04
 
 ソースコードを見直したら、TransmitError関数の返り値は、秀丸メール本体
上での送受信についての結果しか返してませんでした。

 エディタ上で「今すぐ送信」とした時のエラーコードは捨てられてしまってる
んですが…。

 どうしましょ?

 マクロから「今すぐ送信」とした時に限り、そのエラーコードその他を秀丸
メール本体側の最終エラーコード等に上書きするように直してみます。それでい
いですかね?

 TransmitErrorの他には、TransmitCanceled、SentMailCountの値を上書きコ
ピーしようと思います。

[ ]
RE:01541 マクロで送信エラーを知るには?No.01542
山紫水明 さん 08/12/04 20:28
 
 秀まるおさん,

> マクロから「今すぐ送信」とした時に限り、そのエラーコードその他を秀丸
>メール本体側の最終エラーコード等に上書きするように直してみます。それで
>いいですかね?

マクロの一部に

#n = dllfunc( "SendNow" );
#n = dllfunc( "SetMainWndTop" );
if( dllfunc("TransmitError") ) {
    message "送信できませんでした。";
    endmacro;
}

というようなコードが書ければ,それで結構です。

                             山紫水明
                             SANSHISUIMEI

[ ]
RE:01542 マクロで送信エラーを知るには?No.01544
秀まるお さん 08/12/05 09:38
 
 それと、TransmitError、TransmitCanceled、SentMailCount関数についてはエ
ディタ・ウィンドウ上でも呼び出し可能に直します。

[ ]
RE:01544 マクロで送信エラーを知るには?No.01551
山紫水明 さん 08/12/06 10:46
 
 秀まるおさん,

> それと、TransmitError、TransmitCanceled、SentMailCount関数については
>エディタ・ウィンドウ上でも呼び出し可能に直します。

 V5.13β13で確認しました。早速の対応ありがとうございました。

                                        山紫水明
                                        SANSHISUIMEI

[ ]