使用Outlook消息文件(msg)作为模板

本文关键字:msg Outlook 消息 文件 使用 | 更新日期: 2023-09-27 18:02:50

我想知道是否有可能使用。net框架或Microsoft.Office.Interop.Outlook加载电子邮件消息(*.msg),进行搜索并替换并从c#发送。

这一切都发生在服务器上,所以Outlook无法安装。

What I've try

  • Redemption库,但不知何故它丢失了模板中内联的图像,无法解决这个问题

  • 使用Microsoft.Office.Interop.Outlook
  •     Application objOutlook = new Application();
        objOutlook.CreateItemFromTemplate("c:'temp'..",)
    

但是它的第二个参数是outlook文件夹,我不能给它一个保存到

的文件路径

我正在考虑切换到普通的文本文件而不是c#,但也许有人已经这样做了

更新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/解决方案

如果你想保留格式,你需要使用HTMLBody或RTFBody属性,而不是纯文本Body。

使用Outlook消息文件(msg)作为模板

您现有的兑换代码是什么?

如果需要发送消息,则必须在其中一个Outlook文件夹中创建消息——不能发送独立的MSG文件。