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

时间:2013-03-08 11:07:12

标签: c# .net outlook office-interop outlook-redemption

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

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

我尝试了什么

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

  • 使用Microsoft.Office.Interop.Outlook

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

但它期望作为第二个参数一个outlook文件夹,我不能给它一个文件路径,它将保存到

我正在考虑切换到常规的txt文件而不是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。

1 个答案:

答案 0 :(得分:1)

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

如果需要发送邮件,则必须在其中一个Outlook文件夹中创建邮件 - 无法发送独立的MSG文件。