.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 プロパティを操作する必要があります。