1

我想知道 .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。

4

1 回答 1

1

您现有的兑换码是什么?

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

于 2013-03-08T16:46:24.240 回答