メール受信一通毎のマクロ実行No.36527
アルマットケ さん 09/07/09 23:50
 
お世話になっております。
ユーザのアルマットと申します。

題名の通り、メールを受信する度に一通毎に任意のマクロを
適用することは可能でしょうか?

実際にやりたいことは、メールのSubjectが例えば
"***HOGE*** 今週の予定"であった場合、"***HOGE*** "の文字列
を削除した後に通常の受信処理を実施したいと思っています。

上述のように任意のマクロを適用できればと思っています。
可能でしょうか?

以上、宜しくお願い致します。

[ ]
RE:36527 メール受信一通毎のマクロ実行No.36534
秀まるお2 さん 09/07/10 09:37
 
 可能ですが、受信した後にメールを1通ずつ選択しながらマクロが動作するよ
うな形になるので、あんまりお勧めはしないです。

 やるとしたら、SelectRecvMailまたはSelectRecvMailInFolder関数を使って
メールを1通ずつ選択させて、CurrentHeader関数でsubject:ヘッダをチェック
して、書き換えが必要なら BeginEditMail/SetHeader/SaveEditMailで書き換え
る、という風になります。

 上記に書いた関数のヘルプを参照していただければ、それなりにやり方が理解
いただけるかなぁと思います。

 作成したマクロは、「マクロ・マクロ登録・自動起動」の「受信が一段落した
時」に登録して自動起動する形にします。

> "***HOGE*** 今週の予定"であった場合、"***HOGE*** "の文字列
> を削除した後に通常の受信処理を実施したいと思っています。

 単純に「***HOGE*** 」の表示が邪魔であるということなら、フォルダ毎の設
定での

     Subjectの[...]を省略表示する

 オプションをONにした上で、さらに「全般的な設定・メール一覧・詳細・もっ
と詳細」の

     Subjectから[...]を省略するやり方を正規表現で指定する


 をONにして、例えば正規表現パターンには

     ^\*\*\*HOGE\*\*\*

 を指定するとかすればいいんじゃないかと思います。

[ ]
RE:36534 メール受信一通毎のマクロ実行No.36539
アルマットケ さん 09/07/10 10:58
 
秀まるお2 さん

アルマットケです。

返信、ありがとうございました。

>     Subjectの[...]を省略表示する

で試しましたが、メール一覧の表示上からのみ見えない
ようにするのではなく、Subject自体から消したいので、
ご教授いただいたマクロで試してみたいと思います。

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


[ ]
RE:36539 メール受信一通毎のマクロ実行No.36541
秀まるお2 さん 09/07/10 11:31
 
 ちなみにgoogleでSelectRecvMailまたはSelectRecvMailInFolderで検索すると、
過去にここの会議室で僕が書いたマクロのサンプルなどがいろいろヒットすると
思います。あとは、うちのホームページの「ライブラリ」の中に、いろいろと
メールを加工する系のマクロがあると思うので、その辺も参考にしていただくと
いいかもしれないです。

[ ]
RE:36541 メール受信一通毎のマクロ実行No.36562
アルマットケ さん 09/07/10 18:53
 
秀まるお2 さん

アルマットケです。

ご教授いただいたSelectRecvMail関数を試してみました。
だいたい希望する動作になったのですが、一点だけ。
マクロを実行すると、実行前に見ていたメールとは
別のメール(おそらく受信したメール群の中の最後のメール?)
が、最終的に選択状態になってしまいます。
SelectRecvMail関数の機能上、仕方がないのかもしれませんが、
これを回避(選択しているメールは変えない)する手立てはあるで
しょうか?

度々、申し訳ありませんが、何かアイデアございましたら、
ご教授ください。



[ ]
RE:36562 メール受信一通毎のマクロ実行No.36563
RET さん 09/07/10 19:08
 
こんにちは.

>マクロを実行すると、実行前に見ていたメールとは
>別のメール(おそらく受信したメール群の中の最後のメール?)
>が、最終的に選択状態になってしまいます。
>SelectRecvMail関数の機能上、仕方がないのかもしれませんが、
>これを回避(選択しているメールは変えない)する手立てはあるで
>しょうか?

SelectRecvMail の前に現状を覚えておいて,処理後に元に戻してあげればどうでし
ょうか.

// 覚えておく
$currentAccount = dllfuncstr("CurrentAccount");
$currentFolder  = dllfuncstr("CurrentFolder" );
#viewArea       = dllfunc("ViewArea");
#mailIndex      = dllfunc("MailIndex");

// (SelectRecvMail を使ってなんやかんや処理)

// 元に戻す
#n = dllfunc("SelectFolder", $currentAccount, $currentFolder);
#n = dllfunc("SetViewArea", #viewArea);
#n = dllfunc("SetMailIndex", #mailIndex);

[ ]
RE:36563 メール受信一通毎のマクロ実行No.36564
アルマットケ さん 09/07/10 20:31
 
RETさん

アルマットケです。

ご親切にサンプルをご教授いただき、
ありがとうございました。

無事に希望の動作になりました。


>こんにちは.
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>#n = dllfunc("SetMailIndex", #mailIndex);

[ ]