2011-07-21 6 views
5

私は、メッセージを暗号化されたものを含めて自動的に転送するためのVBAのスクリプトを作成しています。Outlook 2007以降では、暗号化とデジタル署名のボタンを制御します。

唯一の問題は、暗号化をプログラムによって削除することです。

私はこのようにそれを行うことができると思った:

  • 開き、私は知らないこの方法で暗号化&ログインオプション
  • 前方メッセージ

選択解除メッセージ

  • をEncrypt & Signボタンへの参照を取得する方法。

    ここでは、暗号化されていない標準のメールで使用できるコードを示します。

    Sub test_macro(MyMail As MailItem) 
        MyMail.Display 
        'Need some API here to access the decrypt button  
    
    
        MyMail.Recipients.Add "[email protected]" 
        MyMail.Recipients.Add "[email protected]" 
        Item_Send (MyMail) 
    
    
    End Sub 
    

    背景

    要件が特定の人々に、部門アドレスのすべての受信メッセージを転送するためにここにあります:私はすべての受信メールの「メールルール」として、この方法を設定します。暗号化されたものを転送すると、Outlookのさまざまなバージョン(2003/2007/2010/etc)間であらゆる種類の証明書の問題が発生します。これらはすべて部門アドレスの秘密鍵を必要とするため、個人アカウント証明書ある種の不安定な行動、時にはうまくいく、時々そうでない)。

    代替私は、セキュリティの制限のため、現在のアプローチは、おそらく私は選択肢に探しています動作しませんことを実現

    • 近づきます。 Outlookのプラグインを作成すると、受信メッセージを復号化するためにセキュリティAPIにアクセスできるようになるのだろうか?

    • POPクライアントを作成し、取得し、手動でメッセージを復号化して転送します。 Outlookがデフォルトでサポートする多くの暗号化形式/アルゴリズムが存在するため、これはおそらく最も難しいアプローチです。

    他のアイデアはありますか?ありがとう!

  • +0

    これは疑わしいマルウェアと思われます。あなたが悪意のある何かをしようとしていない限り、メッセージをプログラムで解読して転送することは、あなたがしなければならないことではありません。 –

    +0

    @Ken White、結論にジャンプしないでください。部門アドレスのすべての着信メッセージを特定の人に転送する必要があります。暗号化されて転送すると、Outlookのさまざまなバージョン(2003/2007/2010/etc)間であらゆる種類の証明書の問題が発生します。これらはすべて部門アドレスの秘密鍵を必要とし、個人アカウント証明書と競合します。 – Bogdan

    +0

    I didnどんな結論にもジャンプしない。私はそれがあなたのコメントでそれを説明するまで、それが疑わしいと思った(それはまだあります)。 –

    答えて

    0

    優れたライブラリMail.dllを使用してIMAPメールクライアントを作成しました。私は非常に電子メールのもののためにこれをお勧めします - 素晴らしいドキュメント、素晴らしいサポート!

    0

    私はそれがMailItemオブジェクトのメソッドでなければならないと考えましたが、MailItem.Encrypt()関数はありません。

    これは見つけることがしばらく時間がかかった: http://support.microsoft.com/?kbid=279013

    を、私はあなたが望むように欲しいものを行う方法があるとは思いませんが、おそらくあなたは、カスタムメールを作成するために、そのリンクで情報を使用することができますMailItemを入力としてメッセージフォームに送信し、その後に送信します。

    +0

    私もその記事を見ましたが、それを調べてくれてありがとう。残念なことにその情報はOutlook 2000向けであり、Microsoftはインターフェース項目のAPIを完全に変更しました。とにかく私はMail.dll(http://www.lesnikowski.com/mail/)を使ってPoC IMAPクライアントを構築しました。 – Bogdan

    +0

    良いお買い得!だからこのDLLは関数を与える?私はマイクロソフトのサイト上で新しいAPIを見ました...あなたのためにAPIがありますか? – Jeff

    +0

    このライブラリは、電子メールクライアント(POP/IMAP/SMTP/SMIME/etc)を作成するために必要なものすべてを提供し、素晴らしい文書を持っています。それは合理的に値段が付けられています。 – Bogdan

    3

    私はこれが古いスレッドであることを知っていますが、関心のある人は、プログラムでトグル(有効または無効にする)を有効にする方法と、プログラムでトークンを暗号化する(署名と暗号化をチェックする)方法については、 。電子メールアイテムが暗号化されている場合、これはまた、プログラムをチェックするたとえば、次のC#.NETの機能は、Outlook 2007、2010、2013年に使用することができます微調整

    https://support2.microsoft.com/kb/2636465?wa=wsignin1.0

    と.NETで行うことができます

    public static bool isEmailEncrypted(ref Outlook.MailItem mItem) { 
         bool retVal = false; 
         string PR_SECURITY_FLAGS = "http://schemas.microsoft.com/mapi/proptag/0x6E010003"; 
         long flags = (long)mItem.PropertyAccessor.GetProperty(PR_SECURITY_FLAGS); 
         //need to do bitwise AND operation 
         long bitwiseAND = flags & 1; //encrypted bit is the first bit 
         if (bitwiseAND == 1) { 
          retVal = true; 
         } 
         return retVal; 
        } 
    
    関連する問題