1

.net フレームワークまたは Microsoft.Office.Interop.Outlook を使用して電子メール メッセージ (*.msg) を読み込み、検索して置換し、C# から送信することは可能でしょうか。

すべてサーバー上で発生しているため、Outlook をインストールできません。

私が試したこと

  • 償還ライブラリですが、どういうわけか、テンプレートにインライン化された画像が失われ、これを修正する方法がわかりません

  • Microsoft.Office.Interop.Outlook の使用

        Application objOutlook = new Application();
        objOutlook.CreateItemFromTemplate("c:\temp\..",)
    

しかし、2 番目のパラメーターとして Outlook フォルダーを想定しているため、保存先のファイル パスを指定できません。

C# の代わりに通常の txt ファイルに切り替えることを考えていますが、誰かが既にこれを行っている可能性があります

更新 1

これは私が試した引き換えコードです。問題は、(署名の) フォーマットとイメージが保持されないことです。

using Interop.Redemption;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Replace(@"mailnonunicode.msg");
            Replace(@"mailunicode.msg");
            Replace(@"mailtemplate.oft");
        }

        static void Replace(string cTestharnessKmailMsg)
        {
            RDOSession rdoSession = new RDOSession();
            RDOMail messageFromMsgFile = rdoSession.GetMessageFromMsgFile(cTestharnessKmailMsg);

            messageFromMsgFile.Body = messageFromMsgFile.Body.Replace("abc",
                                                                      "xyz");
            messageFromMsgFile.Save();
        }
    }
}

更新 2 / 解決策

フォーマットを保持したい場合は、プレーン テキストの Body ではなく、HTMLBody または RTFBody プロパティを操作する必要があります。

4

1 に答える 1

1

既存の引き換えコードは何ですか?

メッセージを送信する必要がある場合は、Outlook フォルダーのいずれかにメッセージを作成する必要があります。スタンドアロンの MSG ファイルは送信できません。

于 2013-03-08T16:46:24.240 に答える