我尝试获取您可以在EmailMessage的附件中找到的图像。但是当我运行代码时,我收到了这个错误:对象引用没有设置为对象的实例。
这是代码:
string sHTMLCOntent = item.Body;
FileAttachment[] attachments = null;
if (item.Attachments.Count != 0)
{
attachments = new FileAttachment[item.Attachments.Count];
for (int i = 0; i < item.Attachments.Count; i++)
{
string sType = item.Attachments[i].ContentType.ToLower();
if (sType.Contains("image"))
{
attachments[i] = (FileAttachment)item.Attachments[i];
string sID = attachments[i].ContentId;
sType = sType.Replace("image/", "");
string sFilename = sID + "." + sType;
string sPathPlusFilename = Directory.GetCurrentDirectory() + "\\" + sFilename;
attachments[i].Load(sFilename);
string oldString = "cid:" + sID;
sHTMLCOntent = sHTMLCOntent.Replace(oldString, sPathPlusFilename);
}
}
}
//string s = System.Text.Encoding.UTF8.GetString(item.MimeContent.Content);
//FreeTextBox1.Text += s;
答案 0 :(得分:0)
因为你正在爆炸
string sType = item.Attachments[i].ContentType.ToLower();
并且您已经检查了附件的长度,然后不能设置Attachment对象的内容类型。由于您使用它来执行其余代码,因此您需要这样的代码。这条消息是如何生成的?
我会添加一些代码来查看附件,可能是AttachmentType或FileName属性,以确保您具有附件详细信息,并确定操作过程。也许您自己添加附件,只需要设置内容类型。祝你好运!
答案 1 :(得分:-2)
而不是
FileAttachment[] attachments = null;
你应该做一个它的实例:
FileAttachment[] attachments = new FileAttachment[10];
例如