ユーザーの署名を生成するために何かを作成しましたが、今度はそれをデフォルトの署名として設定したいと思います。これにより、作成中または返信中の新しいメールに自動的に追加されます。
私はこれを行う方法についての例や参照を見つけることができませんでした。誰かが私を正しい方向に向けてくれませんか。
VSTOWordオブジェクトを使用して署名を設定する方が簡単だと思います。
static void SetDefault(string signature)
{
Word.Application oWord = new Word.Application();
Word.EmailOptions oOptions;
oOptions = oWord.Application.EmailOptions;
oOptions.EmailSignature.NewMessageSignature = signature;
oOptions.EmailSignature.ReplyMessageSignature = signature;
//Release Word
if (oOptions != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(oOptions);
if (oWord != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(oWord);
}
レジストリキーを使用してこれを行う方法を見つけました。キーは、HKCU \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows Messaging Subsystem \ Profiles [OutlookProfilename]\9375CFF0413111d3B88A00104B2A6676にあります。
そのキーには、署名ごとに複数のフォルダ00000001が表示されます。誰かのウィンドウプロファイルを削除すると、カウントは再び1から始まります。
ここで、「NewSignature」または「Reply-ForwardSignature」という名前のREG_Binaryを配置する場合、値は16進形式の署名の名前である必要があります。署名の名前が「テスト」であるとすると
、16進数で54 657374になります。regキーは次のようになります:
54006500730074000000000000000000000000
私はこのように自分自身を明確にしたことを願っています:Dこれを見つけるのは簡単ではありませんでした:D
IOlkAccountManager
アカウントごとの署名の名前は、 MAPIインターフェイスを介してアクセスできるアカウントプロファイルデータに保存されます。そのインターフェイスは拡張MAPIであるため、C++またはDelphiを使用してのみアクセスできます。
Outlookオブジェクトモデルは、アカウントの署名や任意のプロパティへのアクセスを公開しません。
OutlookSpyでデータを確認できます。IOlkAccountManagerをクリックし、アカウントをダブルクリックします。新しい署名名と返信署名名は、それぞれプロパティ0x0016001Fと0x0017001Fにあります。
これらのプロパティは、IOlkAccountインターフェイスで拡張MAPI(C ++またはDelphi)を使用して設定できます。Redemption(任意の言語)を使用して設定することもできます-RDOAccountオブジェクトは、NewMessageSignatureプロパティとReplyプロパティ、およびFields [](任意のプロパティの設定に使用できます)を公開します。