我正在尝试向我的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.
答案 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);