受信したメールを編集して転送したいのでNo.41477
kumi0008 さん 11/09/14 14:29
 
受信したメールの本文の編集をして別のアドレスに自動で転送したいのですが、
(マクロを使って)


例えば

9月14日

こんにちは。
お元気ですか?

山田太郎

↑このメールの「9月14日」と「山田太郎」の部分を削除して別のアドレスに自動
で転送したいのですが、
これらをマクロを使って受信から転送までをすべて自動で出来る方法はないでしょう
か?

受信したメールを携帯に転送したいのですが、その際、余計な広告等を削除して携帯
で受信出来たら良いなと思ってます。

転送は「メールの振り分け」で問題ないのですが、受信したメールの本文の特定文字
を削除して転送する方法がわかりません。
マクロにて可能でしょうか?

よろしくお願いします。

[ ]
RE:41477 受信したメールを編集して転送しNo.41479
秀まるお2 さん 11/09/14 16:00
 
 マクロと振り分けの連携プレーで処理するのが一番簡単じゃないかと思います。

 まず、振り分けの方では、現状でやってる「そのまま転送」を使うことにしま
す。だけども、受信ログをそのまま転送する方式だとマクロで加工するのが大変
なので、

 全般的な設定・上級者向け・送信時のエンコード

 の

 振り分けでの「そのまま転送」時に、受信ログをそのまま転送する

 をOFFにしておく必要があります。(標準ではONになってると思います)

 で、そうした上で、「マクロ・マクロ登録...」の「自動起動」ページの「受
信が一段落した時」の所に、未送信フォルダ中のメールを加工するマクロを登録
しておけばいいです。

 未送信フォルダのメールを加工するマクロとしては、例えば以下のようになり
ます。

    $targetacc = "対象アカウント名";

    loaddll "tkinfo.dll";
    #count = dllfunc("GetFolderMailCount", $targetacc, "未送信");
    if( #count == 0 ) {
        endmacro;
    }
    $account = dllfuncstr("CurrentAccount");
    $folder = dllfuncstr("CurrentFolder");

    #n = dllfunc("SelectFolder", $targetacc, "未送信");
    if( dllfunc("IsThreadView") ) {
        #n = dllfunc("SetThreadView", 0);
    }
    #i = 0;
    while( #i < #count ) {
        #n = dllfunc("SetMailIndex", #i);
        if( dllfuncstr("CurrentHeader", "Resent-From:") != "" ) {
            //そのまま転送 のメールの場合のみ
            #browsemode = browsemode;
            #readonly = readonly;
            if( browsemode ) browsemodeswitch;
            if( readonly ) readonlyswitch;
            #n = dllfunc("BeginEditMail");
            replaceallfast "[0-9]{1,2}月[0-9]{1,2}日(|\\n|\\n\\n)", ""
                         , regular;
            replaceallfast "^山田太郎(|\\n|\\n\\n)", "", regular;
            if( updated ) {
                #n = dllfunc("SaveEditMail", 0, 1);
            } else {
                #n = dllfunc("CancelEditMail");
            }
            if( browsemode ) browsemodeswitch;
            if( readonly ) readonlyswitch;
        }
        #i = #i + 1;
    }
    #n = dllfunc("SelectFolder", $account, $folder);

[ ]
RE:41479 受信したメールを編集して転送しNo.41480
kumi0008 さん 11/09/14 16:51
 
さっそくお答えありがとうございます。
試してみたけど、うまくいきません。
これからいろいろ試してみたいと思います。

$targetacc = "対象アカウント名"; 
↑対象アカウント名はアカウント毎の設定のメールサーバーのメールアカウントでよ
いのでしょうか?

マクロの登録場所は「Hidemaru」「Macro」に置きました。


例)

こんにちは。

★山田太郎
090-XXXX-AAAA


↑★から以降を削除って出来ますか?

何度も質問して申し訳ございません。
よろしくお願いします。


[ ]
RE:41480 受信したメールを編集して転送しNo.41481
秀まるお2 さん 11/09/14 17:06
 
> $targetacc = "対象アカウント名"; 
> ↑対象アカウント名はアカウント毎の設定のメールサーバーのメールアカウントでよ
> いのでしょうか?

 「設定・アカウント毎の設定...」の「個人情報」ページの「アカウント名」
の所に出てくる文字列を指定すればいいはずです。

> こんにちは。
>
> ★山田太郎
> 090-XXXX-AAAA
>
>
> ↑★から以降を削除って出来ますか?

   replaceallfast "★山田太郎\\n090-XXXX-AAAA\\n", "", regular;

 で置換出来ると思います。

[ ]
RE:41481 受信したメールを編集して転送しNo.41484
kumi0008 さん 11/09/14 18:10
 
秀まるお2様、丁寧なお答えありがとうございます。
私はマクロがまだ勉強不足なので、これからも勉強したいと思います。
本文の特定文字を削除しての自動転送は有料でも良いから実現したいと思ってます。

今後も秀丸エディタと秀丸メールを使わせていただきます(感謝!)

[ ]