添付ファイルをキーにCCに宛先を追加したNo.34948
nakanofu さん 08/10/23 11:51
 
初めて書き込みさせていただきます。
現在、秀丸メールの5.10を利用させていただいております。

最近、会社の方でセキュリティに関する規約が厳しくなり、会社側でメールシステム
に規制をかければいいものを、投資をケチって社員のハンドリングに任せようという
方針で下記のような運用指示が出ており、なんとかマクロで処理できないかと悩んで
おります。

【運用ルール】
・社外に対して添付ファイルを送信する時は、上長のアドレスをCCに追加する。


プログラムなど組んだことがないのですが、マクロライブラリの中のkohさまの「フ
ァイル添付し忘れチェッカー」に追記する形で、

$s = dllfuncstr("CurrentHeader", "X-Attach");
if (strlen($s) != 0) {
 $s = dllfuncstr( "AddHeader", "cc", "上司アドレス" ); //nakanofu追記
 endmacro;
}

question "添付ファイルを付け忘れている可能性があります。\r\nこのまま送信しま
すか?";
if (result == yes) {
 endmacro;
}

上記のような形で、とりあえず添付があれば必ず上司アドレスをCCすることはできま
した。


できれば、これを更に進めて
(1)To、CC、Bccに既に上司アドレスがあれば、更にCCすることは辞める。
(2)もっと言えば(1)かつTo、CC、Bccに、私の所属するドメイン以外のアドレ
スがあった場合のみ、上司アドレスをCCする。
ようにしたいのですが、私の知能の限界を超えました・・・

どなたかマクロスクリプトを作成いただけないでしょうか・・・

ずうずうしいお願いで申し訳ありませんが、お願いいたします。

[ ]
RE:34948 添付ファイルをキーにCCに宛先をNo.34952
秀まるお2 さん 08/10/23 13:38
 
 とありえずですが、To: Cc: Bcc:ヘッダが特定のメールアドレスを含むかどう
か探すマクロのサンプルを先に書き込みます。

    loaddll "tkinfo.dll";
    call FindRecipientEmail, "xxxxxx@mycompanyhogehoge.co.jp";
    if( ##return ) {
        message "見つかった";
    } else {
        message "見つからなかった";
    }
    endmacro;


FindRecipientEmail:
    call FindRecipientEmailSub "To", $$1;
    if( ##return ) {
        return 1;
    }
    call FindRecipientEmailSub "Cc", $$1;
    if( ##return ) {
        return 1;
    }
    call FindRecipientEmailSub "Bcc", $$1;
    if( ##return ) {
        return 1;
    }
    return 0;


FindRecipientEmailSub:
    ##c1 = dllfunc("CountCurrentHeader", $$1);
    ##i1 = 0;
    $$2 = dllfuncstr("ToUpper", $$2);
    while( ##i1 < ##c1 ) {
        $$s = dllfuncstr("CurrentHeader2", $$1, ##i1);
        ##c2 = dllfunc("CountEmailList", $$s);
        ##i2 = 0;
        while( ##i2 < ##c2 ) {
            $$one = dllfuncstr("GetEmailList", $$s, ##i2);
            $$one = dllfuncstr("SetEmailOnly", $$one);
            $$one = dllfuncstr("ToUpper", $$one);
            if( $$one == $$2 ) {
                return 1;
            }
            ##i2 = ##i2 + 1;
        }
        ##i1 = ##i1 + 1;
    }
    return 0;

[ ]
RE:34948 添付ファイルをキーにCCに宛先をNo.34953
秀まるお2 さん 08/10/23 13:41
 
 To: Cc: Bcc: に特定ドメインを含むかどうか探すサンプルを作りましたが、
これは別に必要無いようですね。

 といいつつ、せっかく作ったのでこれも書き込んでしまいます。

    loaddll "tkinfo.dll";
    call FindRecipientDomain, "@mycompanydomainhogehoge.co.jp";
    if( ##return ) {
        message "見つかった";
    } else {
        message "見つからなかった";
    }
    endmacro;


FindRecipientDomain:
    call FindRecipientDomainSub "To", $$1;
    if( ##return ) {
        return 1;
    }
    call FindRecipientDomainSub "Cc", $$1;
    if( ##return ) {
        return 1;
    }
    call FindRecipientDomainSub "Bcc", $$1;
    if( ##return ) {
        return 1;
    }
    return 0;


FindRecipientDomainSub:
    ##c1 = dllfunc("CountCurrentHeader", $$1);
    ##i1 = 0;
    $$2 = dllfuncstr("ToUpper", $$2);
    ##domainLen = strlen($$2);
    while( ##i1 < ##c1 ) {
        $$s = dllfuncstr("CurrentHeader2", $$1, ##i1);
        ##c2 = dllfunc("CountEmailList", $$s);
        ##i2 = 0;
        while( ##i2 < ##c2 ) {
            $$one = dllfuncstr("GetEmailList", $$s, ##i2);
            $$one = dllfuncstr("SetEmailOnly", $$one);
            $$one = dllfuncstr("ToUpper", $$one);
            $$one = rightstr( $$one, ##domainLen );
            if( $$one == $$2 ) {
                return 1;
            }
            ##i2 = ##i2 + 1;
        }
        ##i1 = ##i1 + 1;
    }
    return 0;

[ ]
RE:34948 添付ファイルをキーにCCに宛先をNo.34954
秀まるお2 さん 08/10/23 13:43
 
 会社のドメイン以外のドメインを含むかどうか調べるマクロのサンプルです。

 さっきアップロードしたマクロとは、内容的には1行違うだけですけど。

    loaddll "tkinfo.dll";
    call FindRecipientDomainOther, "@mycompanydomainhogehoge.co.jp";
    if( ##return ) {
        message "見つかった";
    } else {
        message "見つからなかった";
    }
    endmacro;


FindRecipientDomainOther:
    call FindRecipientDomainOtherSub "To", $$1;
    if( ##return ) {
        return 1;
    }
    call FindRecipientDomainOtherSub "Cc", $$1;
    if( ##return ) {
        return 1;
    }
    call FindRecipientDomainOtherSub "Bcc", $$1;
    if( ##return ) {
        return 1;
    }
    return 0;


FindRecipientDomainOtherSub:
    ##c1 = dllfunc("CountCurrentHeader", $$1);
    ##i1 = 0;
    $$2 = dllfuncstr("ToUpper", $$2);
    ##domainLen = strlen($$2);
    while( ##i1 < ##c1 ) {
        $$s = dllfuncstr("CurrentHeader2", $$1, ##i1);
        ##c2 = dllfunc("CountEmailList", $$s);
        ##i2 = 0;
        while( ##i2 < ##c2 ) {
            $$one = dllfuncstr("GetEmailList", $$s, ##i2);
            $$one = dllfuncstr("SetEmailOnly", $$one);
            $$one = dllfuncstr("ToUpper", $$one);
            $$one = rightstr( $$one, ##domainLen );
            if( $$one != $$2 ) {
                return 1;
            }
            ##i2 = ##i2 + 1;
        }
        ##i1 = ##i1 + 1;
    }
    return 0;

[ ]
RE:34954 添付ファイルをキーにCCに宛先をNo.34961
nakanofu さん 08/10/24 11:35
 
さっそく頂いたコードとにらめっこして繋いで見たいと思います。
ありがとうございました!

[ ]