1

C# 言語で Outlook メッセージ テンプレートを作成するために、Outlook Redemption dll を使用します。

以下は私のコードです:

RedemptionLoader.DllLocation64Bit = Server.MapPath("~/bin/dlls/Redemption64.dll");
RedemptionLoader.DllLocation32Bit = Server.MapPath("~/bin/dlls/Redemption.dll");

Interop.Redemption.RDOSession session = RedemptionLoader.new_RDOSession();

var msg = session.GetMessageFromMsgFile(templatePath);

msg.Subject = String.Format("Report");

String ImageString = Server.MapPath("~\\FolderName") + "\\" + ImageName;
RDOAttachment Attach = msg.Attachments.Add(ImageString);
Attach.ContentID = "image1";
String htb = "<html><head><title>The Title</title></head><body><h1>This is some text</h1>Image 1<br /><img src=cid:image1><br /></body></html>";

msg.HTMLBody = htb;
msg.Save();
msg.SaveAs(newPath);

すべての作業と画像が新しい場所に保存されます。しかし、そのメッセージ テンプレートを確認すると、どこにも Image が表示されませんでした。画像の代わりにエラーが発生します。

ここに画像の説明を入力

更新 埋め込み画像の代わりに、このファイルを添付してみました。しかし、ファイルを開くと、添付ファイルが表示されませんでした。OutlookSpy で Total Attachments を確認すると、0 件の添付ファイルが表示されます。私のコードは添付ファイルに対して間違っていますか?

4

1 に答える 1

2

これに対する解決策を見つけました。セッションを 2 回呼び出す必要があります。添付ファイルをテンプレート ファイルに初めて保存し、その新しいインスタンスを再度作成します。以下は私のコードです:

        RedemptionLoader.DllLocation64Bit = Server.MapPath("~/bin/dlls/Redemption64.dll");
        RedemptionLoader.DllLocation32Bit = Server.MapPath("~/bin/dlls/Redemption.dll");


         Interop.Redemption.RDOSession session1 = RedemptionLoader.new_RDOSession();


        var msg1 = session1.GetMessageFromMsgFile(templatePath);


        msg1.Subject = String.Format("Report");

        String ImageString = Server.MapPath("~\\FolderName") + "\\" + ImageName;
        RDOAttachment Attach = msg1.Attachments.Add(ImageString);
        Attach.ContentID = "image1";
        String htb = "<html><head><title>The Title</title></head><body><h1>This is some text</h1>Image 1<br /><img src=cid:image1><br /></body></html>";

        msg1.HTMLBody = htb;
        msg1.Save();

        Interop.Redemption.RDOSession session = RedemptionLoader.new_RDOSession();


        var msg = session.GetMessageFromMsgFile(templatePath);
        msg.SaveAs(newPath);

これは私にとってはうまくいきます。

于 2013-09-11T23:11:30.890 に答える