Outlook.attachment拒绝加载我的图像

时间:2015-07-17 19:48:20

标签: c# outlook

我正在尝试向我的C#应用​​程序添加图像附件,当我通过outllook发送电子邮件时,该附件会发送。如果我包含完整的文件路径,它唯一会识别图像。我尝试通过资源链接它,以及更改文件的CopyToOutputDirectory属性,然后像我在项目的其他地方使用我的html文件Outlook.Attachment attachment = mailItem.Attachments.Add( @"C:\Testing\ConsoleApplication\ConsoleApplication\Web\MCGLogo.jpg" , Outlook.OlAttachmentType.olEmbeddeditem , null , "Montgomery, Coscia, Greilich" ); 那样包含它,但这也不起作用。

有效的代码

IDoStuff<object> dummy = null; // don't need a valid instance.
string methodName = nameof(dummy.Do) // yay! no magic strings.

2 个答案:

答案 0 :(得分:0)

olEmbeddeditem表示嵌入式邮件附件。 在您的情况下,图像只是常规的olByValue类型附件。您只能添加文件附件,资源或链接不起作用。您必须将附件保存为文件拳头。

这是一张HTML图片吗?您是否确保HTML正文通过cid属性引用了图像?

答案 1 :(得分:0)

您需要将图像附加到项目,然后使用HTMLBody编写HTML以在HTML中添加附件 cid 作为参考。例如:

 Attachment attachment = mailItem.Attachments.Add(
    "C://test.bmp"
    , OlAttachmentType.olByValue
    , null
    , "test image"
    );
    string imageCid = "test.bmp@123";

    attachment.PropertyAccessor.SetProperty(
        "http://schemas.microsoft.com/mapi/proptag/0x3712001E"
        , imageCid
        );
    mailItem.HTMLBody = String.Format(
          "<body><img src=\"cid:{0}\"></body>"
         , imageCid);
    mailItem.Display(false);