振り分け後に特定ヘッダを削除するマクロNo.07745
RET さん 04/01/28 22:14
 
こんにちは.

β版の鶴亀マクロ会議室でお伺いしたところ,こちらのほうが適切ではという
ご指摘をいただきましたので,あらためてお問い合わせさせていただきます.
http://www.maruo.co.jp/turukame/5/x00515_.html?a=7#515

現在作ろうとしているのは「振り分け後に特定ヘッダを削除」するマクロです.
http://www.maruo.co.jp/hidesoft/8/x15617_.html#15617
出させていただいた要望と関連しています.)
ヘッダ情報を元にメールを振り分け,振り分け後は不必要なので消す,という
ことを考えていますので,設定にある「不要ヘッダの削除」
(振り分け前に削除)は使えません.

手順としては
・(受信が一段落した時に登録)←この時点で振り分けも終わっていますよね?
・直前に受信したメールの一覧を検索して作成
・検索結果のメールを全選択
・それらのメールについてヘッダを削除
と考えていますが,「検索結果のメールを全選択」というのは可能でしょうか?

#n = dllfunc("SetFindPack", "flag=!send&transmit=直前の送受信時-指定なし, su
bfolder=1");
#n = dllfunc("DoGrep", "", "");
#n = sendmessage(hidemaruhandle(0), 0x0111, 40008, 0);
では検索結果ウィンドウのメールを選択してくれるわけではないようです.

何か情報がありましたら教えていただけないでしょうか.
また,もっとよい案や手順などありましたら(そのものズバリのマクロが
公開されているとか),そちらも教えていただけると幸いです.

よろしくお願いします.

[ ]
RE:07745 振り分け後に特定ヘッダを削除すNo.07746
たるっぱ さん 04/01/28 23:26
 
RETさん こんにちは。
たるっぱです。

元スレッドと殆ど同じマクロを提示させてもらいます。

//--------------------------------------------------------------------
loaddll "tkinfo.dll";
#n = dllfunc("DisableDraw");
while (dllfunc( "SelectRecvMail" )) {
    #n = dllfunc("BeginEditMail");
    #n = dllfunc("DeleteHeader","X-Text-Classification");
    #n = dllfunc("SaveEditMail", 0, 0 );
}
#n = dllfunc("EnableDraw");
//--------------------------------------------------------------------
私の環境で試した限りでは、"受信が一段落した時"に、このマクロを登録すれば、
振り分け後、受信したメールのX-Text-Classificationヘッダが削除されます。

>ヘッダ情報を元にメールを振り分け,振り分け後は不必要なので消す,という
>ことを考えていますので,設定にある「不要ヘッダの削除」
>(振り分け前に削除)は使えません.

よく確認せずに提案を行ってすみませんでした。

[ ]
RE:07745 振り分け後に特定ヘッダを削除すNo.07747
Iranoan さん 04/01/29 00:15
 
 RET さん今日は、Iranoan です。
> 現在作ろうとしているのは「振り分け後に特定ヘッダを削除」するマクロです.
> (http://www.maruo.co.jp/hidesoft/8/x15617_.html#15617
> 出させていただいた要望と関連しています.)
> ヘッダ情報を元にメールを振り分け,振り分け後は不必要なので消す,という
> ことを考えていますので,設定にある「不要ヘッダの削除」
> (振り分け前に削除)は使えません.
 この使い方なら、まず受信時に振り分けを止めた方が良いと思います。その
上で、次の手順のマクロを作成すればよいでしょう。
(1) 現在の未読→既読の設定を保存
(2) コマンドで未読→既読を使わない限り、未読に変更しないように設定変更
(3) FindDownInclude や SelectRecvMail で直前に受信したメールを選択
    後者は
    > 選択したメールは、「新着メール」のフラグがOFF
    という弊害もあるので注意
(4) OpenMail や BeginEditMail 等でメールのヘッダを削除
    Received 等は複数あるので、DeleteHeader2 を使った方がよいかも
(5) メールの振り分け
(6) (3)〜(5) の繰り返し
(7) 未読→既読の設定を元に戻す

[ ]
RE:07746 振り分け後に特定ヘッダを削除すNo.07748
RET さん 04/01/29 10:57
 
こんにちは.コメントありがとうございました.

>元スレッドと殆ど同じマクロを提示させてもらいます。
>(以下マクロ部分略)

ありがとうございます.見事,やりたかったことができました.
SelectRecvMail を使うと新着フラグがoffになるというヘルプの表記から,
どのメールが新着かわからなくなるのでは,と思って使うのをためらって
いたのですが,きちんと(フォルダでも一覧でも)わかるように表示されるのですね.
大いに勉強にもなりました.

>よく確認せずに提案を行ってすみませんでした。

こちらこそ,最初からきちんと条件を提示しておくべきでした.

早速使わせていただきます.重ねて,ありがとうございました.

[ ]
RE:07747 振り分け後に特定ヘッダを削除すNo.07749
RET さん 04/01/29 11:02
 
こんにちは.コメントありがとうございました.

> この使い方なら、まず受信時に振り分けを止めた方が良いと思います。その
>上で、次の手順のマクロを作成すればよいでしょう。
>(以下略)

今回はたるっぱさんのマクロが上手く動作しますのでそちらを
使わせていただくことにしましたが,Iranoanさんにご提案いただいた
こちらの流れもきちんと勉強して理解し,役に立てたいと思います.

ありがとうございました.

[ ]
RE:07748 振り分け後に特定ヘッダを削除すNo.07750
RET さん 04/01/29 13:01
 
自己フォローです.

>SelectRecvMail を使うと新着フラグがoffになるというヘルプの表記から,
>どのメールが新着かわからなくなるのでは,と思って使うのをためらって
>いたのですが,きちんと(フォルダでも一覧でも)わかるように表示されるのですね.

この部分ですが,新着がわかるように表示されているというよりは
「未読」なのでわかるように表示されている,ということですね.
最初からそれに気づいていれば Select...を使う方法を思いつけて
いたかもしれません.ともかく,いろいろと勉強になりました.

[ ]
RE:07747 振り分け後に特定ヘッダを削除すNo.07751
Iranoan さん 04/01/29 17:11
 
 RET さん今日は、Iranoan です。
 自己フォローです。(既に解決しているようですが...。)
> まず受信時に振り分けを止めた方が良い
 これが大前提なので、ヘッダを削除してからなので、
> (5) メールの振り分け
の方法は駄目ですね。

 結局流れとしては、
(1) FindDownInclude や SelectRecvMail で直前に受信したメールを選択
    後者は
    > 選択したメールは、「新着メール」のフラグがOFF
    という弊害もあるので注意
(2) OpenMail や BeginEditMail 等でメールのヘッダを削除
    Received 等は複数あるので、DeleteHeader2 を使った方がよいかも
(3) 振り分けで「既読にする」を ON にしていないメールは未読に
    設定によってはマクロ実行中に既読になる可能性
(4) (1)〜(3) の繰り返し
となるのかな?

 これ以外は、好みに合わせて、マクロの実行前後でアクティブ・フォルダを
元に戻すや、本文を同じ状態に戻す処理等を加える必要があると思います。

 これ以外に、RET さんが最初に考えられたように、DoGrep を使う方法もあ
りますが、これだとメールを読み書きしているときに実行されると、相当邪魔
だと思います。

[ ]