送信の順番に関してNo.19457
takajin さん 04/08/23 10:01
 
現在メールを送受信するときメールの送信は
メールアドレスの順番どおりに送信されますが、
これを件名の順番どおりに送信、作成日の順番どおりに送信
というオプションの追加またはマクロをどなたか書いていただけませんでしょうか?

メールの定期送受信する時に件名、または作成日
の順番で送信を行いたいので。

よろしくお願いいたします。

[ ]
RE:19457 送信の順番に関してNo.19459
Iranoan さん 04/08/23 12:08
 
 takajin さん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
> 現在メールを送受信するときメールの送信は
> メールアドレスの順番どおりに送信されます
 おそらくこの認識が違うと思います。細かく見ていませんが、「未送信」
フォルダに表示される順番で送信されると思います。ですから
> これを件名の順番どおりに送信、作成日の順番どおりに送信
をしたければ、その様にソートし直してから送信すれば良いと思います。

[ ]
RE:19459 送信の順番に関してNo.19469
秀まるお2 さん 04/08/23 14:46
 
 Iranoanさんの予想は合ってないです。実は、メールが送信される順序につい
て、特にこれといった規則性はありません。鶴亀メール内部での、内部的なメー
ルの並び順で送信されるだけでして、特に日付順とかアドレス順とかってことに
はなってません。

 しいて、送信される順序を制御したいなら、メールを1通1通エディタで開い
て「今すぐ送信」を繰り返す形になろうかと思いますが、…。そのように送信し
たとしても、メールサーバー側がその順序でメールを配信する保障は無いので、
必ずしも期待した順序ではメールは届かないと思います。というか、むしろ、順
序はばらばらになるケースが多いです。

 例えば1通目に送ったメールが非常にサイズの大きなメールで、2通目に送っ
たメールがサイズの小さいメールだったとすると、たぶんですが、2通目に送っ
たメールの方が先に届きます。メールの配信というのは、複数のメールを並行し
て実行するので、配信順序は、大抵の場合、小さいメールが先で大きなメールが
後になります。さらに言うなら、配信先のサーバーが混雑していたりすると、特
定のメールが何時間も遅れて配信されたりすることもあります。

 ということで、配信順序の制御は事実上不可能ということで、マクロも作成し
ないこととさせていただきます。

[ ]
RE:19469 送信の順番に関してNo.19471
takajin さん 04/08/23 15:22
 
>鶴亀メール内部での、内部的なメールの並び順で送信されるだけ
>でして、特に日付順とかアドレス順とかってことにはなってません。

>むしろ、順序はばらばらになるケースが多いです。

後者の書き込みに対してですが、ファイルサイズは大きさの
ばらつきがほどんどありません。上下10%です。
また、送信間隔もNEGiES http://tinyurl.com/4hvu6
を使って調整するので連続送信ということにはなりません。

だからほぼ同じ大きさのメールをほど同じ間隔で
流すことになります。 つまり手動で同じメールを作成して
その場で送信という作業を繰り返すのと同じことになります。

このような環境なら件名順に送れば件名順に届きますよね?

だからマクロを作っていただけたら助かると思い書きました。
こちらの詳しい状況を書いていませんで、すみません。

>マクロも作成しないこととさせていただきます。

もし上記のことも踏まえで機能しそうでしたら
マクロを書いていただけると大変ありがたいです。

よろしくお願いします。 では。

[ ]
RE:19471 送信の順番に関してNo.19472
tnobu2 さん 04/08/23 15:49
 
>だからほぼ同じ大きさのメールをほど同じ間隔で
>流すことになります。 つまり手動で同じメールを作成して
>その場で送信という作業を繰り返すのと同じことになります。
>
>このような環境なら件名順に送れば件名順に届きますよね?

多くの場合そのようになると思いますが、残念ながらメールが送信順に相手
に着信するというのはメールシステムの仕組み上、保証されていません。

届く順番は、単純にメールの大きさや送信間隔や方法だけでは決まるわけ
ではなく、送信者と受信者の間を中継するサーバーの都合によります。
送信したメールがどのような経路でどのくらいの時間で相手のサーバーに
届くかどうかは、一通一通送ってみないとわからないです。

[ ]
RE:19471 送信の順番に関してNo.19473
秀まるお2 さん 04/08/23 16:02
 
 「今すぐ送信」を繰り返すか、または未送信メールを全部草稿フォルダに移動
しつつ、送信したいメールだけを未送信フォルダに移動してから「送信」コマン
ドを実行する形になろうかとは思います。

 前者の例で、例えば今現在のメールの並び順でってことなら、こんなマクロに
なろうかとは思います。

------------------
    loaddll "tkinfo.dll";
    if( dllfuncstr("CurrentFolder") != "未送信" ) {
        message "未送信フォルダを選択してから実行してください。";
        endmacro;
    }
    if( dllfunc("MailCount") == 0 ) {
        message "未送信フォルダにメールがありません。";
        endmacro;
    }
    if( dllfunc("IsThreadView") ) {
        message "スレッド表示では実行できません。";
        endmacro;
    }
    while( dllfunc("MailCount") != 0 ) {
        #n = dllfunc("SetMailIndex", 0);
        #n = dllfunc("OpenMail");
        #handle = hidemaruhandle(0);
        #n = dllfunc("SendNow");
        if( #n == 0 ) {
            message "メール送信に失敗しました。マクロを中断します。";
            endmacro;
        }
        #n = dllfunc("SetMainWndTop");
        closehidemaruforced #handle;
    }
------------------

[ ]
RE:19473 送信の順番に関してNo.19474
takajin さん 04/08/23 16:56
 
>秀丸さん

マクロありがとうございました。
未送信フォルダを選択後、受信後にこのマクロを
起動させるようにしたらほぼ望んでいる動作をしてくれました。

ただ、実際にメールを送る際に鶴亀が最前列に
表示されていないとだめなようです。

これだとまったく他の作業が出来なくなってしまいます。

定期送受信するときと同様に最小化した状態で
ダイアログ等を表示させることなくこのマクロと同じことを
することは出来ないのでしょうか?

[ ]
RE:19474 送信の順番に関してNo.19475
秀まるお2 さん 04/08/23 17:48
 
 「今すぐ送信」を裏で動作させることは難しいので、しいて裏でやるなら、未
送信メールを全部草稿フォルダに移動しつつ、1通づつ未送信フォルダに移動し
てから「送信」を繰り返す形になります。

 あらかじめ草稿フォルダでのソート方法を目的の並び順に指定しておくという
前提になりますが、それならば以下のマクロになります。1行目の$account=の
部分だけご自身で書き換えて使ってください。

    $account = "斉藤秀夫メイン";        // 対象のアカウント
    loaddll "tkinfo.dll";
    #n = dllfunc("SelectFolder", $account, "未送信");
    if( dllfunc("MailCount") == 0 ) {
        endmacro;
    }
    #n = dllfunc("SelectPane", 1);
    #n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0 );
        // 40008 ... すべて選択
    #n = dllfunc("Move", "", "草稿");
    #n = dllfunc("SelectFolder", $account, "草稿" );
    if( dllfunc("IsThreadView") ) {
        message "スレッド表示では実行できません。";
        endmacro;
    }
    while( dllfunc("MailCount") != 0 ) {
        #n = dllfunc("SetMailIndex", 0);
        #n = dllfunc("Move", "", "未送信");
        #n = dllfunc("SendRemain");
    }

[ ]
RE:19475 送信の順番に関してNo.19477
takajin さん 04/08/23 19:26
 
マクロありがとうございます。

ただ、自分の環境ではマクロが動作いたしません。
エラー表示等も何も表示されません。
環境 xp sp1 home 鶴亀3.64β12

草稿フォルダ上(他のフォルダでも同じですが)
で同マクロを実行すると未送信フォルダを選択しただけの
状態になります。

お忙しいと思いますが、修正お願いいたします。

[ ]
RE:19477 送信の順番に関してNo.19481
秀まるお2 さん 04/08/24 13:04
 
 $account = "..."の部分には、実際に送信したいメール用のアカウントにご自
身で書き換えないとダメです。"斉藤秀夫メイン"というのは、たまたま僕がテス
トする時に使った、僕のパソコン上でのアカウント名です。

 あと、未送信フォルダにメールが無ければ、このマクロはメッセージを表示す
ることなく終了します。何か未送信フォルダにメールを置いて実行しないとダメ
です。

 しいて、マクロの実行状況を逐次表示しながら動作させるとしたら、以下のマ
クロとなります。

    $account = "斉藤秀夫メイン";        // 対象のアカウント
    loaddll "tkinfo.dll";
    #n = dllfunc("SelectFolder", $account, "未送信");
    if( #n == 0 ) {
        message "未送信フォルダの選択に失敗しました。";
        endmacro;
    }
    if( dllfunc("MailCount") == 0 ) {
        message "未送信フォルダにメールがありません。";
        endmacro;
    }
    #n = dllfunc("SelectPane", 1);
    if( #n == 0 ) {
        message "メール内容枠の選択に失敗しました。";
        endmacro;
    }
    #n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0 );
        // 40008 ... すべて選択
    #n = dllfunc("Move", "", "草稿");
    if( #n == 0 ) {
        message "草稿フォルダへのメールの移動に失敗しました。";
        endmacro;
    }
    #n = dllfunc("SelectFolder", $account, "草稿" );
    if( #n == 0 ) {
        message "草稿フォルダの選択に失敗しました。";
        endmacro;
    }
    if( dllfunc("IsThreadView") ) {
        message "スレッド表示では実行できません。";
        endmacro;
    }
    if( dllfunc("MailCount") == 0 ) {
        message "草稿フォルダに移動したはずのメールが見つかりません。";
        endmacro;
    }
    while( dllfunc("MailCount") != 0 ) {
        #n = dllfunc("SetMailIndex", 0);
        #n = dllfunc("Move", "", "未送信");
        if( #n == 0 ) {
            message "未送信フォルダへのメールの移動に失敗しました。";
            endmacro;
        }
        #n = dllfunc("SendRemain");
        if( #n == 0 ) {
            message "メールの送信に失敗しました。";
            endmacro;
        }
        if( dllfunc("SentMailCount") == 0 ) {
            message "送信されたメール数が0通でした。";
            endmacro;
        }
    }

[ ]
RE:19477 送信の順番に関してNo.19483
秀まるお2 さん 04/08/24 13:06
 
 あと1つ忘れてました。鶴亀メールのバージョンは、念のため最新のV3.65に
して欲しいです。(V3.64正式版でもいいけど)

[ ]
RE:19481 送信の順番に関してNo.19485
takajin さん 04/08/24 13:25
 
>秀丸さん

返信とマクロありがとうございました。
マクロですが、草稿フォルダにメールを入れて実行していました。
未送信フォルダに入れて送信したら普通に動きました。
メールもsubject通りに送られているようです。

動作を確認しましたので報告でした。
マクロ本当にありがとう。 では。

[ ]
RE:19485 送信の順番に関してNo.19496
takajin さん 04/08/24 20:43
 
>>秀丸さん

マクロの件ですが6時間前に動作を確認して
そのままお仕事に戻り、今実際にちゃんと使ってみたのですが、
きづいた点があります。 

このマクロなのですが、動作を中止または一時停止
にすることは出来ませんよね?
Pause、Escをクリックしても起動が止まらなくて
タスクマネージャーから強制的に終了させることになって
しまうのですが…。

そして、強制終了後サイドマクロを動かしてみると
未送信フォルダに残っている一通だけを送信して
終わります。(草稿フォルダにはメールが残っている。

一時停止をすること、そして再開してメールの送信を
続ける事が出来るように修正お願いできませんか?
本当にすみません。お願いします。

他からの受信メールを読んだり、返信しなくては
ならないのでぜひ一時停止と送信の再開は出来るように
していただけるとありがたいです。

よろしくお願いします。

[ ]
RE:19496 送信の順番に関してNo.19498
秀まるお2 さん 04/08/24 21:58
 
 送信している最中の一時停止は、Pauseキーを使って送信を中断する方法を使
って欲しいです。Pauseキーで中断すればマクロも終了するように直しました。

 以下、マクロの例です。

    $account = "斉藤秀夫メイン";        // 対象のアカウント
    loaddll "tkinfo.dll";
    #n = dllfunc("SelectPane", 1);
    #n = dllfunc("SelectFolder", $account, "未送信");
    if( dllfunc("MailCount") != 0 ) {
        #n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0 );
            // 40008 ... すべて選択
        #n = dllfunc("Move", "", "草稿");
    }
    #n = dllfunc("SelectFolder", $account, "草稿" );
    if( dllfunc("IsThreadView") ) {
        message "草稿フォルダがスレッド表示になってます。";
        endmacro;
    }
    if( dllfunc("MailCount") == 0 ) {
        //message "送信対象のメールがありません。";
        endmacro;
    }
    while( dllfunc("MailCount") != 0 ) {
        #n = dllfunc("SetMailIndex", 0);
        #n = dllfunc("Move", "", "未送信");
        #n = dllfunc("SendRemain");
        if( #n == 0 ) {
            endmacro;
        }
        if( dllfunc("TransmitCanceled") ) {
            endmacro;
        }
        if( dllfunc("SentMailCount") == 0 ) {
            endmacro;
        }
    }

[ ]